数据库DML操作(DCL了解)

时间:2022-02-14 18:45:00

DQL:SELECT * FROM 表名

DML(数据操作语言,它是对表记录的操作(增、删、改)!)

1. 插入数据
* INTERT INTO 表名(列名1,列名2, ...) VALUES(列值1, 列值2, ...);
  > 在表名后给出要插入的列名,其他没有指定的列等同与插入null值。所以插入记录总是插入一行,不可能是半行。
  > 在VALUES后给出列值,值的顺序和个数必须与前面指定的列对应
* INTERT INTO 表名 VALUES(列值1, 列值2)
  > 没有给出要插入的列,那么表示插入所有列。
  > 值的个数必须是该表列的个数。
  > 值的顺序,必须与表创建时给出的列的顺序相同。

 

在数据库中所有的字符串类型,必须使用单引,不能使用双引!
日期类型也要使用单引!

// 插入所有列
INSERT INTO stu(
number, name, age, gender
)
VALUES(
'ITCAST_0001', 'zhangSan', 28, 'male'
);
// 插入部分列,没有指定的列默认为NULL值
INSERT INTO stu(
number, name
) VAKLUES(
'ITCAST_0002', 'liSi'
);

 

// 不给出插入列,那么默认为插入所有列!值的顺序要与创建表时列的顺序相同
INSERT INTO stu VALUES(
'ITCAST_0003', 'wangWu', 82, 'female'
);

 

2. 修改数据
* UPDATE 表名 SET 列名1=列值1, 列名2=列值2, ... [WHERE 条件]
* 条件(条件可选的):
  > 条件必须是一个boolean类型的值或表达式:UPDATE t_person SET gender='男', age=age+1 WHERE sid='1';
  > 运算符:=、!=、<>、>、<、>=、<=、BETWEEN...AND、IN(...)、IS NULL、NOT、OR、AND
列如:
 

WHERE age >= 18 AND age <= 80
WHERE age BETWEEN 18 AND 80

WHERE name='zhangSan' OR name='liSi'
WHERE name IN ('zhangSan', 'liSi')
WHERE age IS NULL, //不能使用等号
WHERE age IS NOT NULL

 


3. 删除数据
* DELETE FROM 表名 [WHERE 条件];
* TRUNCATE  TABLE 表名:TRUNCATE是DDL语句,它是先删除drop该表,再create该表。而且无法回滚!!!

 

DCL(理解)

* 一个项目创建一个用户!一个项目对应的数据库只有一个!
* 这个用户只能对这个数据库有权限,其他数据库你就操作不了了!

1. 创建用户
  * CREATE USER 用户名@IP地址 IDENTIFIED BY '密码';
    > 用户只能在指定的IP地址上登录
  * CREATE USER 用户名@'%' IDENTIFIED BY '密码';
    > 用户可以在任意IP地址上登录

2. 给用户授权
  * GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP地址
    > 权限、用户、数据库
    > 给用户分派在指定的数据库上的指定的权限
    > 例如;GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost;
      * 给user1用户分派在mydb1数据库上的create、alter、drop、insert、update、delete、select权限
  * GRANT ALL ON 数据库.* TO 用户名@IP地址;
    > 给用户分派指定数据库上的所有权限

3. 撤销授权
  * REVOKE 权限1, … , 权限n ON 数据库.* FROM 用户名@IP地址;
    > 撤消指定用户在指定数据库上的指定权限
    > 例如;REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;
      * 撤消user1用户在mydb1数据库上的create、alter、drop权限

4. 查看权限
  * SHOW GRANTS FOR 用户名@IP地址
    > 查看指定用户的权限

5. 删除用户
  * DROP USER 用户名@IP地址