Mysql基础
1. 定义:Mysql是数据管理系统
2. 关系:数据库→表
3. 一些常用的Mysql命令:({}大括号表示2选1,[]中括号表示可选项)
1) 登录: mysql-u root-p
2) 显示所有数据库:show databases
3) 创建数据库:Create database db_name
4) 切换到指定数据库:use db_name
5) 查看文字支持类型:show character set
6) 设置支持文字:character set utf8(汉字)
7) 数据库:drop database db_name
4. 在数据库中建立数据表:
1) 数据表是二维表格(行,列)
2) 一行代表一条数据
3) 每个列代表当前一条数据的字段
4) 创建表格:
(例) create table tb_name(
收货人 varcher(8),
件数 int
);
5) 查看表:show tables
6) 删除表格:drop table tb_name
5. 常用的table命令
1) 数字类:
a) Tinyint 只接受1和0
b) Int 整数
c) Double(10,2) 带小数的数字
Float(10,2)只允许带7位小数
d) Numeric(10,2)整数和小数
2) 日期类:
a) Date 日期
b) Time 时间
c) Datetime 年月日/时分秒
3) 字符类:
a) Char 确定长度的字符(长度一定)
b) Varchar 变长字符(最大4000)
c) Text 变长字符(无限大)
6. 建表
1) 建表:create table tb_name(字段1 类型,
字段2 类型);
2) 主键:primary key 唯一识别一条记录的字段
3) 自增:auto_increment 某个字段不需要手动填写数据,而是通过系统分配的整数增长(每一条数据分配的值都是前一条数据的增量)
4) 非空:not null 字段设置位非空时,填写数据时要求该字段位必填项
5) 默认值:default 0 向表中填写数据时,字段不写入数据时,会默认
7. 插入数据
1) Insert tb_name values() 适用于全记录输入
2) Insert tb_name() values() 适用于指定字段
8. 修改
1) 全修改 Update tb_name set lb_name
2) 指定修改 update tb_name set 字段1=值,字段2=值 where 条件
例如:update tb_name set nickname=‘TOM’ where id=1
9. 删除表中记录
Delete from tb_name where 条件
10. 查看
1) 查看全表信息 select * from tb_name
2) 投影 select id,name from tb_name
3) 查询时别名 select id‘编号’,name‘姓名’ from tb_name
4) 查询时带条件 select name from from where id=1
5) 模糊查询 select name from tb_name where cno like ‘ %默认%’
a) %是通配符,可以代表任意多个字符
b) _只代表一个字符
6) 聚合函数 select count(*) from tb_name 统计查询记录个数
求和 sum(age)
平均 avg(age)
最大 max(age)
最小 min(age)
7) 排序查看
Select * from tb_name order by di esc(降序desc)
多个排序Select * from tb_name order by di,name
8) 按组查看
Select * from tb_name group by name
9) 分组聚合并用
Select name,count(*) from tb_name group by name
10) 分组条件筛选
Select name,count(*) from tb_name group by name
having avg(age)>30
11. 关联
两表关联,一定有主从表之分,从主表建立一个新的字段以便关联到从表,主表中的新建的这个用于关联的字段称为外键 foreign key
1) 如何建立外键:在主表中新建一个字段;新建的这个字段应与从表的主键类型相同,并关联到从表的主键
2) 多个表查询
Select *from 1 join 2 on 1.a=2.a
Join 3 on 2.b=3.b
12. 子查询
Select * from tb_name where id in( select id from users
Limit 限制查询
Select * from tb_name where limit 4,2( 第4到第2条)
14. as 看作一个table
(select cid from orders group by cid ) as ca
15. 在----之间
Where Between 40 and 60
16. 年份相减 1977-2-1 减1976-6-25
Where year(sbirthday)-year(sbirthday)
Union 将两个结构相同的查询结果进行合并
18. Distinct 去重复项
Select distinct cname from tb_name