一、mysql基础
1.mysql相关文件
mysql.exe:客户端程序
mysqld.exe :服务端程序
my.ini:服务器配置文件
2.sql语句分类
DDL:对数据库、表的结构操作
DML:对表的记录操作
DCL:对用户的创建及授权
DQL:查询操作
3.sql时间类型
date:日期(年月日)
time:时间(时分秒)
timeStamp:时间戳类型
4.DCL
一个项目创建一个用户,一个项目对应的数据库只有一个,该用户只能对此项目有权限
二、sql加强
1. in()
update stu set s_gender='male' where s_age in(20,22);
2. ifnull(comm,0):comm属性如果为null,则视为0操作
concat(e_name,e_job):将e_name和e_job属性连接在一起
concat(e_name,e_job) as 描述:将e_name和e_job属性连接在一起,并起别名为“描述”(as可省略);
3. _:一个字符
%:零个或多个字符
4.order by 列名 asc(升序)/desc(降序)
order by 列名1 asc(升序),列名2(降序) : 如按列名1升序排序相同,则按列名2降序排序
5. select count(*) from stu;查询记录条数
sum(xxx);某列总和
max\min\avg
6. group by 列名: 按列分组
select xxx,xxx group by 列1:xxx只能放 分组列列1,或者聚合函数
分组后的条件:关键字having
select s_gender,count(*) from stu where s_name<>'zhangsan' group by s_gender having count(*)>3;
按性别分组,找出不是叫做张三的性别及个数,并且个数要大于3
7. mysql方言:limit
select * from stu limit 4,3;
其中4(下标4)表示从第5行开始,其中3表示一共查询3行,即显示5、6、7行数据
8.添加主键:alter table stu add primary key(xxx)
删除主键:alter table stu drop primary key
(使用uuid做主键)
外键可以为空
外键约束:constraint xxx foreign key(sno) references ...(xxx)
自增 auto_increment(insert value为null时,也有值)
9.合并结果集
要求被合并的表中,类的类型和列数相同
Union,去除重复行
Union all,不去除重复行
10.内连接:标准:select * from 表1 别名1 inner join 表2 别名2 on 别名1.xx=别名2.xx
外连接:
左外连接:一主一次,以左为主,主表中所有的记录无论满不满足条件都显示,当不满足条件时,右表部分使用null补位
注:可使用IFnull(d.dname,'无部门')。
select * from 表1 left outer join 表2 on 表1.xxx=表2.xxx
右外连接:一主一次,以右为主,主表中所有的记录无论满不满足条件都显示,当不满足条件时,左表部分使用null补位
全连接:可以使用union来使用全连接
三、心得
由于之前学过sql知识,掌握得较快,当做复习了