DML操作
小知识:
在
mysql
中,字符串类型和日期类型都要用单引号括起来。
空值:
null
(
2
)修改(更新)操作:
UPDATE:
语法:
UPDATE
表名
SET
列名
1=
列值
1,
列名
2=
列值
2 ... WHERE
列名
=
值
练习:
将所有员工薪水修改为
5000
元。
将姓名为
’zs’
的员工薪水修改为
3000
元。
update emp set salary=3000 where name='zs';
将姓名为’aaa’的员工薪水修改为4000元,resume改为ccc。
update emp set salary=4000,resume='ccc' where name='aaa';
将wu的薪水在原有基础上增加1000元。
update emp set salary=salary+1000 where name='wu';
将zhangsan、以及1990-5-10出生的人的性别改成boy
update emp set gender='boy' where name='zhangsan' and birthday='1990-05-10';
3
)删除操作:
DELETE:
语法 :
DELETE from
表名 【
WHERE
列名
=
值】
练习:
删除表中名称为
’zs’
的记录。
delete from emp where name='zs';
删除表中所有记录。
delete from emp;
使用truncate删除表中记录。
truncate table emp;
- DELETE
删除表中的数据,表结构还在
;
删除后的数据可以找回
- TRUNCATE
删除是把表直接
DROP
掉,然后再创建一个同样的新表。
-
删除的数据不能找回。执行速度比
DELETE
快。
练习题
:
Manager(
管理员表
)
:
mid
编号
int
(主键)
mname
名字
varchar(20)
age
年龄
int
sex
性别
char(2)
password
密码
varchar(20)
address
地址
varchar(20)
phone
电话
varchar(20)
数据:
1
王子
18
男
123
北京
110
2
公主
20
女
456
上海
220
3
太子
23
男
789
南京
330
需求:
(1)
创建表
create table manager(mid int,mname varchar(20),
age int,sex char(2),
password varchar(20),
address varchar(20),phone varchar(20));
(2)将数据插入到表中
insert into manager values(1,'王子',18,'男','123','北京','110'),(2,'公主','20','女','456','上海','330'),(3,'太子','23','男','678','南京','330');
(3)将王子的年龄修改为24
update manager set age=24 where mname='王子';
(4)将地址是南京的管理员改为天津
update manager set address='天津' where address='南京';
(5)
将性别是女
,
并且年龄大于
30
的用户密码改为
888888
update manager set password='888888' where sex='女' and age>30;
(6)
将所有用户的密码恢复最初设置
111111
update manager set password='111111';
(7)
将员工的电话中不是
110
的电话号码改为
7654321
update manager set phone='7654321' where phone<>110;
(8)
将王子的年龄改为
18
,地址改为承德,性别改为女
update manager set age=18,address='承德',sex='女' where mname='王子';
(9)
删除王子的信息
delete from manager where mname='王子';
(10)
删除地址在南京并且年龄大于
60
的员工信息
delete from manager where address='南京' and age>60;
(11)
删除不在北京的员工信息
delete from manager where address<>'北京';
(12)
删除地址在北京或上海的员工信息
delete from manager where address='北京' or address='上海';
(13)
删除电话号码是空的员工信息
delete from manager where phone=' ' and phone is null;
小结
:
为空的条件:列名
is null or
列名
=''
注
:
两个单引号表示空字符串
日期类型值的区别
:
date
:
yyyy-MM-dd
(年月日)
time
:
hh:mm:ss (
时分秒
)
datetime:yyyy-MM-dd hh:mm:ss (
年月日时分秒
)
获取当前系统时间:now()
select now();
2.6 DCL
1
、创建用户:
create user
用户名
@
指定
ip identifified by
密码
;
create user yhpa@localhost identified by 'abc';
2
、用户授权:
grant
权限
1,
权限
2,........,
权限
n on 数据库名.* to
用户名
@IP; 给指定用户授予指定指定数据库指定权限 将yhp数据库的增删改查权限给'yhpa'@localhost
grant select,insert,update,delete,create on yhp.* to 'yhpa'@localhost;
3
、用户权限查询:
show grants for
用户名
@IP;
show grants for 'yhpa'@localhost;
4
、撤销用户权限:
revoke
权限
1,
权限
2,........,
权限
n on
数据库名
.* from
用户名
@IP;
revoke select on yhp.* from 'yhpa'@localhost;
5
、删除用户:
drop user
用户名
@IP;
drop user 'yhpa'@localhost;