MySQL03
数据库中常见的数据类型:
int:整数类型,默认长度为11
double: 浮点类型,书写方法为(5,2)表示有5位数组成,其中小数位后面保留两位数,最大值为999.99
decimal: 书写方法为(5,2)表示有5位数组成,其中小数位后面保留两位数,定义跟金钱有关的变量。
char: 固定长度的字符串类型
varchar: 变长的字符串类型
char 和 varchar 之间的区别:
char声明字段开辟的存储空间用不完不会释放(查询效率高),而varchar声明的字段存储空间用不完会释放出去(查询效率低)
text : 字符串类型
date: 日期类型 格式:yyyy-MM-dd
time:时间类型 格式:hh:mm:ss
DML:数据操作语言
插入语句:
第一种:
insert into 表名 values(值1,值2,…..)
备注:值的顺序必须和表中声明字段的一致,且所有字段都要有
第二种:
insert into 表名(字段名1,字段名2) values(值1,值2)
备注:字段要与值对应,未写入的值以null代替
修改语句:
语法:update 表名 set 字段名=新的字段名;
备注:上面这种写法会将表中所有的记录中的字段名的值都修改为新的值,为了避免这种情况,往往在后面加上相应的条件,用关键字where表示。
删除语句:
第一种:
delete from 表名 where 条件
第二种:
truncate table 表名
区别:第二种删除方式为先将表删除,然后再创建表
DCL:数据控制语言
创建用户:create user 用户名@localhost identified by ‘密码’;
给用户授权:grant 权限1………on 数据库.*(表名) to 用户名@localhost:
撤销授权:revoke 权限1……..on 数据库名.* from 用户名
查看用户授权:show grants for 用户名
删除用户:drop user 用户名
修改用户密码:
use mysql;
update user set password=password(‘新密码’) where user=’用户名’ and host=’地址’
flush privileges
DQL: 数据查询语言
#基础查询操作
-- 查询stu中的所有列
SELECT * FROM stu;
-- 查询指定列
SELECT sname,sid FROM stu;
#条件查询 where
-- 根据一定条件查询出结果,常常和一些运算符和关键字一起使用
-- 运算符:> < = <> != >= <=
-- 关键字:between and 前包括后也包括
-- is null not and or in
-- 查询性别为女,并且年龄大于50的记录
SELECT * FROM stu WHERE gender='female' AND age>50;
-- 查询学号为s_1001,或者姓名为lisi的记录
SELECT * FROM stu WHERE sid='s_1001' OR sname='lisi';
-- 查询学号为s_1001,s_1002,s_1003的记录
SELECT * FROM stu WHERE sid IN ('s_1001','s_1002','s_1003');
SELECT * FROM stu WHERE sid='s_1001' OR sid='s_1002' OR sid='s_1003';
-- 查询学号不是s_1001,s_1002,s_1003的记录
SELECT * FROM stu WHERE sid NOT IN ('s_1001','s_1002','s_1003');
-- 查询年龄为null的记录
SELECT * FROM stu WHERE age IS NULL;
-- 查询年龄在20到40之间的学生记录
SELECT * FROM stu WHERE age BETWEEN 20 AND 40;
SELECT * FROM stu WHERE age>=20 AND age<=40;
-- 查询性别非男的学生记录
SELECT * FROM stu WHERE NOT gender='male';
-- 查询姓名不为null的学生记录
SELECT * FROM stu WHERE sname IS NOT NULL;