DML语句
增加(插入):insert
修改:updaate
删除:delete
1:添加insert
insert into 表名(字段名1,字段名2,……) values (值1,值2,……) #指定字段添加值,字段1对应值1
insert into 表名 values (值1,值2,……) #给全部字段添加数据,即值1自动对应第一个字段……
#批量添加多条数据
insert into 表名 (字段名1,字段名2……) values (值1,值2……),(值1,值2……),……
insert into 表名 values (值1,值2……),(值1,值2……),……
- *注意
- 插入数据时,指定的字段顺序要与值的顺序一一对应
- 字符串和日期类型的数据应该包含在引号中
- 插入的数据大小,应该在字段的规定范围内
示例:添加数据到表
mysql> insert into employ(id,worknomber,name,gender,age,idcard,entydate) values (1,'1','ittest','男','20','12345678912345678x','2020-01-01'); #添加内容,指定字段添加
Query OK, 1 row affected (0.01 sec)
mysql> select * from employ; #查看表的内容
mysql> insert into employ values (2,'2','张三','男','18','987654321987654321','2022-01-01'); #不指定字段,要与表的字段一一对应,添加所有字段内容
Query OK, 1 row affected (0.01 sec)
一次性插入多条数据
mysql> insert into employ values (3,'3','李四','男','30','98765432198765434a','2021-01-01'),(4,'4','王五','女','24','123456789987654328','2020-11-01'); #第一条数据和第二条数据之间使用,分隔,需要与表的字段一一对应
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0
2:修改update
update 表名 set 字段名1=值1,字段名2=值2,…… [where 条件]; #where 符合条件的修改,不存在where则修改整个表
示例:修改id为1的name为赵六
mysql> update employ set name='赵六' where id=1; #修改字段信息
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
修改多个字段
mysql> update employ set name='小明',gender='女' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
修改整个表,不携带where条件则修改整个表
mysql> update employ set entydate='2008-01-01';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
3:删除数据delete
delete from 表名 [where 条件]
- 注意
- delete语句的条件可以有,也可以没有,如果没有条件,则删除整张表的所有数据
- delete的语句不能删除某一个字段的值(可以使用update来删除)
案例:删除表中gender为女的员工
mysql> delete from employ where gender='女'; #添加where条件则表示只删除匹配到的信息
Query OK, 2 rows affected (0.01 sec)
删除表中的所有数据
mysql> delete from employ; #不添加where条件则表示删除整个表
Query OK, 2 rows affected (0.03 sec)
所有数据
mysql> delete from employ; #不添加where条件则表示删除整个表
Query OK, 2 rows affected (0.03 sec)
DCL语句
1:用户创建
DCL英文全称是Data Control language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
-
查询用户
use mysql; select * from user;
-
创建用户
create user '用户名'@'主机名' identified by '密码'
-
示例
-
创建ittest用户,仅能够在当前主机localhosts登录,密码123456
mysql> create user 'ittest'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.02 sec)
-
创建用户test1,可以在任意主机访问数据库,密码123456
mysql> create user 'test1'@'%' identified by '123456'; #%s表示所有
-
-
-
修改用户密码
alter user '用户名'@‘主机名’ identified with mysql_native_passwd by '新密码' #mysql_native_passwd加密方式
-
修改test1用户密码为1234
mysql> alter user 'test1'@'%' identified with mysql_native_password by '1234'; Query OK, 0 rows affected (0.00 sec)
-
删除用户
drop user '用户名'@'主机名'; mysql> drop user 'ittest'@'localhost'; #删除ittest用户 Query OK, 0 rows affected (0.01 sec)
-
2:权限管理
权限 | 说明 |
---|---|
all,all privileges | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库/表/视图 |
create | 创建数据库/表 |
- 查询权限
show grants for '用户名'@'主机名';
mysql> show grants for 'test1'@'%';
- 授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@‘主机名;’
mysql> grant all on ittest.* to 'test1'@'%'; #*通配所有
- 撤销权限
remove 权限列表 on 数据库名.表名 from '用户名'@'主机名'
mysql> revoke all on ittest.* from 'test1'@'%' ;
Query OK, 0 rows affected (0.01 sec)
ysql> grant all on ittest.* to 'test1'@'%'; #*通配所有
- 撤销权限
remove 权限列表 on 数据库名.表名 from '用户名'@'主机名'
mysql> revoke all on ittest.* from 'test1'@'%' ;
Query OK, 0 rows affected (0.01 sec)