1. 课程内容概要(简要概括本次课程的主要内容,不需要太详细,但要能快速回忆起本节课的知识点)
主要知识点1:数据库安装及命令操作
2.重点知识与细节(针对本节课的核心内容进行详细记录,包含公式、代码、重要原理等)
开启外联命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; flush privileges;
数据库管理软件
navicat
sqlynx
逻辑运算符
and 与
or 或
not 非
语句
create database yijin; #创建数据库drop database yijin; #删除数据use yijin; #使⽤数据
create table test(id INT(8),pass CHAR(255)); #创建数据表drop table test; #删除数据表
#插⼊数据
insert into test (id,pass) values(1,"admin");
insert into test values(2,"demo"); insert into test values(2,"demo",3); insert into test(id,pass) values(2);
insert into test (id,pass) values(3,"1admin"); insert into test (id,pass) values(4,"1dmin"); insert into test (id,pass) values(5,"config"); insert into test (id,pass) values(6,"11config");
#查询
SELECT column1, column2, ... FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]] [LIMIT number];
#查询指定字段
select pass from test;
select pass from yijin.test;
#查询所有字段信息select * from test;
#简单指定条件查询
select * from test where id=2; select * from test where pass="505";
#组合条件查询
select * from test where id=1 and pass="admin"; #and:需要同时满⾜左右两边的条件,才能够得到对应结果
select * from test where id=1 or pass="505"; #or:只需要满⾜任意⼀个条件,就可以执⾏得到结果#order by 排序
select * from test ORDER BY pass ;#默认升序
select * from test ORDER BY pass DESC;#降序select * from test ORDER BY 1;
select * from test ORDER BY 2;
select * from test ORDER BY 3; #可以⽤于渗透测试中,对于服务器数据表字段的猜测#limit 数据分⻚
select * from test limit 0,3;
select * from test limit 1,3; #⽤于对数据进⾏分⻚select * from test limit 2,3; #⽤于对数据进⾏分⻚
#添加字段
alter table test add user char(255);
alter table test add patch char(255),add img char(255); insert into test(id,pass,user) values(2,"demo","hello");#追加
#更新数据 `UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;` update test set user="xiaoqiang" where id=3 and pass="1admin";
#删除数据`DELETE FROM 表名 WHERE 条件;` delete from test where user="hello";
#ascii
select ascii(1); select ascii("A"); select ascii("a"); select ascii("'"); select ascii('"'); select ascii("!");
#length
select length("abcdefg"); #concat
SELECT CONCAT(1,2,3,4);
SELECT CONCAT((SELECT pass from test WHERE id = 5),1); #substr
SELECT SUBSTR("hello world!!",1,10);
SELECT SUBSTR("hello world!!",3,5);
#sleep
SELECT SLEEP(5); SELECT SLEEP(10);
#其他函数SELECT USER();
SELECT DATABASE(); SELECT VERSION();
MySQL 命令⼤全
基础命令
| 操作 | 命令 | | 连接到 MySQL 数据库 | mysql -u ⽤户名 -p | | 查看所有数据库 | SHOW DATABASES; | | 选择⼀个数据库 | USE 数据库名; | | 查看所有表 | SHOW TABLES; | | 查看表结构 | DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名; | | 创建⼀个新数据库 | CREATE DATABASE 数据库名; | | 删除⼀个数据库 | DROP DATABASE 数据库名; | | 创建⼀个新表 | CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...); | | 删除⼀个表 | DROP TABLE 表名; | | 插⼊数据 | INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); | | 查询数据 | SELECT 列1, 列2, ... FROM 表名 WHERE 条件; | | 更新数据 | UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件; | | 删除数据 | DELETE FROM 表名 WHERE 条件; | | 创建⽤户 | CREATE USER '⽤户名'@'主机' IDENTIFIED BY '密码'; | | 授权⽤户 | GRANT 权限 ON 数据库名.* TO '⽤户名'@'主机'; | | 刷新权限 | FLUSH PRIVILEGES; | | 查看当前⽤户 | SELECT USER(); | | 退出 MySQL | EXIT; |
| 操作 | 命令 | | 创建数据库 | CREATE DATABASE 数据库名; | | 删除数据库 | DROP DATABASE 数据库名; | | 修改数据库编码格式和排序规则 | ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 编码格式 DEFAULT COLLATE排序规则; | | 查看所有数据库 | SHOW DATABASES; | | 查看数据库详细信息 | SHOW CREATE DATABASE 数据库名; | | 选择数据库 | USE 数据库名; | | 查看数据库的状态信息 | SHOW STATUS; | | 查看数据库的错误信息 | SHOW ERRORS; | | 查看数据库的警告信息 | SHOW WARNINGS; | | 查看数据库的表 | SHOW TABLES; | | 查看表的结构 | DESC 表名; DESCRIBE 表名; SHOW COLUMNS FROM 表名; EXPLAIN 表名; | | 创建表 | CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...); | | 删除表 | DROP TABLE 表名; | | 修改表结构 | ALTER TABLE 表名 ADD 列名 数据类型 [约束]; ALTER TABLE 表名 DROP 列名; ALTER TABLE 表名 MODIFY 列名 数据类型 [约束]; | | 查看表的创建 SQL | SHOW CREATE TABLE 表名; |
操作 | 命令 | 创建表 | CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...); | 删除表 | DROP TABLE 表名; | 修改表结 | 添加列: ALTER TABLE 表名 ADD 列名 数据类型 [约束]; 删除列: ALTER TABLE 表名 DROP 列名;修改列: ALTER TABLE 表名 MODIFY 列名 数据类型 [约束]; 重命名列: ALTER TABLE 表名 |
构 | CHANGE 旧列名 新列名 数据类型 [约束]; | | 查看表结构 | DESC 表名; DESCRIBE 表名; SHOW COLUMNS FROM 表名; EXPLAIN 表名; | | 查看表的创建SQL | SHOW CREATE TABLE 表名; | | 查看表中的所有数据 | SELECT * FROM 表名; | | 插⼊数据 | INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); | | 更新数据 | UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件; | | 删除数据 | DELETE FROM 表名 WHERE 条件; | | 查看表的索引 | SHOW INDEX FROM 表名; | | 创建索引 | CREATE INDEX 索引名 ON 表名 (列名); | | 删除索引 | DROP INDEX 索引名 ON 表名; | | 查看表的约束 | SHOW CREATE TABLE 表名; (约束信息会包含在创建表的 SQL 中) | | 查看表的统计信息 | SHOW TABLE STATUS LIKE '表名'; |
| 操作 | 命令 | | 开始事务 | START TRANSACTION; 或 BEGIN; | | 提交事务 | COMMIT; | | 回滚事务 | ROLLBACK; | | 查看当前事务的状态 | SHOW ENGINE INNODB STATUS; (可查看 InnoDB 存储引擎的事务状态) | | 锁定表以进⾏事务操作 | LOCK TABLES 表名 WRITE; 或 LOCK TABLES 表名 READ; | | 释放锁定的表 | UNLOCK TABLES; | | 设置事务的隔离级别 | SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; |
作业
一、 什么是数据库?为什么使用数据库? 存放数据的仓库被称为数据库,
- 数据组织与管理:数据库系统能够有效地组织和管理大量数据,使数据存储更加系统化和结构化。通过使用表、视图、索引等数据结构,数据库使得数据的存储和检索更加高效
。 数据安全性:数据库系统通过用户权限管理、数据加密、访问控制等手段,确保数据的安全性。例如,可以为不同的用户分配不同的访问权限,防止未经授权的访问
。 数据一致性:数据库通过事务管理、约束条件、触发器等机制,确保数据在任何时刻都是准确和可靠的。事务是一组要么全部执行、要么全部不执行的操作,通过事务管理,可以确保在并发操作的情况下,数据的一致性不会被破坏。
数据共享与协作:数据库系统支持多个用户同时访问和操作数据,实现数据的共享与协作。通过锁机制等并发控制机制,确保多个用户同时操作数据时的一致性和完整性
。 数据备份与恢复:数据库系统提供了强大的备份与恢复功能,确保数据在发生意外时能够迅速恢复。通过定期备份和快速恢复,最大限度地减少数据丢失和停机时间
。 高效的数据访问:数据库系统通过索引、哈希等数据结构,实现对数据的快速访问,大大提高了数据访问的效率。 数据查询和分析:数据库系统提供了强大的查询和分析功能,使得用户可以快速地从大量数据中提取有价值的信息。通过结构化查询语言(SQL),用户可以方便地进行数据查询、更新和删除操作
二、 实操题。用命令的方式新建一个学生信息表。数据库名为xuesheng。表名为xuesheng_user。表中的字段为 id ,username , phone , address ,age。其中id类型为int设置为主键,自增,不能为空的约束条件,username、address为字符串设置不能为空的约束条件。Phone设置为int设置不能为空的约束条件。Age设置为int 不能为空的条件。(命令截图) 三、 基于上面的数据库,新增一个int类型chengji的字段设置不能为空的约束条件。然后在表中插入以下数据 Username = 张三 phone = 13888888888 address= 福建 age = 18 chengji = 0 (步骤命令截图)
|