内容
查询语句
1.完整查询语句
2.一堆关键字
关键字的执行顺序
3.单表查询
[where 条件 ******
group by 字段名 ***
having 条件 ***
order by 字段名 *****
limit 显示的条数] *******
4.多表查询 *******
5.子查询
1.完整查询语句
2.一堆关键字
关键字的执行顺序
3.单表查询
[where 条件 ******
group by 字段名 ***
having 条件 ***
order by 字段名 *****
limit 显示的条数] *******
4.多表查询 *******
5.子查询
1.一对一关系的补充
一对一 ******
生活中的一对一
客户表, 学员表
通过分析
一个客户只对应一个学员
一个学员只对应一个客户
所以确定关系为一对一
在mysql中通过外键来建立一对一
create table customer(id int primary key auto_increment,name char(10),phone char(11),sex char(1));
create table student(id int primary key auto_increment,name char(10),class char(11),sex char(1),c_id int,
foreign key(c_id) references customer(id) on update cascade on delete cascade
);
生活中的一对一
客户表, 学员表
通过分析
一个客户只对应一个学员
一个学员只对应一个客户
所以确定关系为一对一
在mysql中通过外键来建立一对一
create table customer(id int primary key auto_increment,name char(10),phone char(11),sex char(1));
create table student(id int primary key auto_increment,name char(10),class char(11),sex char(1),c_id int,
foreign key(c_id) references customer(id) on update cascade on delete cascade
);
2.拷贝表
拷贝表 ***
1.create table copy_table select *from customer ;
拷贝结构 与数据
mysql> select * from copy_table;
+----+------+-------+------+
| id | name | phone | sex |
+----+------+-------+------+
| 1 | lmz | 110 | 女 |
+----+------+-------+------+
mysql> desc copy_table;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| name | char(10) | YES | | NULL | |
| phone | char(11) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2.create table copy_table select *from customer where 0 > 1;
仅拷贝结构
共同点: 索引 不能拷贝 描述不能拷贝(自增)
1.create table copy_table select *from customer ;
拷贝结构 与数据
mysql> select * from copy_table;
+----+------+-------+------+
| id | name | phone | sex |
+----+------+-------+------+
| 1 | lmz | 110 | 女 |
+----+------+-------+------+
mysql> desc copy_table;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| name | char(10) | YES | | NULL | |
| phone | char(11) | YES | | NULL | |
| sex | char(1) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2.create table copy_table select *from customer where 0 > 1;
仅拷贝结构
共同点: 索引 不能拷贝 描述不能拷贝(自增)
3.记录详细操作
以下语法中
[] 表示可选的
{}表示必选的
增
insert [into] 表名[字段名] value|values(字段值....);
into 可省略
[字段名] 可选
如果写了 你后面的值 必须与 写的字段匹配
不写 后面的值 必须和表的结构完全匹配
value 插入一条记录
values 插入多条记录
改
update 表名 set 字段名 = 新的值[,字段n = 新值n] [where 条件]
可以同时修改多个字段 用逗号隔开 注意最后一个字段不能加逗号
where 可选
有就 修改满足条件的记录
没有就全部修改
删
delete from 表名 [where 条件]
where 可选
有就 删除满足条件的记录
没有就全部删除
如果你需要全部删除 请使用truncate table 表名
delete 是逐行比对 删除 效率低
delete删除的行号会保留
查询
完整的查询语句
select [distinct] {* | 字段名 | 聚合函数 | 表达式} from 表名
[where 条件
group by 字段名
having 条件
order by 字段名
limit 显示的条数]
注意: 关键字的顺序必须与上述语法一致
简单查询 ******
1.* 表示所有列 都显示
2.也可以手动指定要显示的列 可以是多个
3.distinct 用于去除重复的记录
只取出完全相同的记录
当然 你也可以手动指定要显示的列 从而来去重
select distinct name from student;#去除项名字相同的数据
4.表达式 支持四则运算
执行顺序
def select()
from() 打开文件
where() 读取每一行并判断是否满足条件
group() 对数据进行分组
having() 再分组之后进行过滤 having不单独出现 仅用于分组之后进行过滤
distinct() 去重
order() 用于对筛选后的数据 进行排序
limit
[] 表示可选的
{}表示必选的
增
insert [into] 表名[字段名] value|values(字段值....);
into 可省略
[字段名] 可选
如果写了 你后面的值 必须与 写的字段匹配
不写 后面的值 必须和表的结构完全匹配
value 插入一条记录
values 插入多条记录
改
update 表名 set 字段名 = 新的值[,字段n = 新值n] [where 条件]
可以同时修改多个字段 用逗号隔开 注意最后一个字段不能加逗号
where 可选
有就 修改满足条件的记录
没有就全部修改
删
delete from 表名 [where 条件]
where 可选
有就 删除满足条件的记录
没有就全部删除
如果你需要全部删除 请使用truncate table 表名
delete 是逐行比对 删除 效率低
delete删除的行号会保留
查询
完整的查询语句
select [distinct] {* | 字段名 | 聚合函数 | 表达式} from 表名
[where 条件
group by 字段名
having 条件
order by 字段名
limit 显示的条数]
注意: 关键字的顺序必须与上述语法一致
简单查询 ******
1.* 表示所有列 都显示
2.也可以手动指定要显示的列 可以是多个
3.distinct 用于去除重复的记录
只取出完全相同的记录
当然 你也可以手动指定要显示的列 从而来去重
select distinct name from student;#去除项名字相同的数据
4.表达式 支持四则运算
执行顺序
def select()
from() 打开文件
where() 读取每一行并判断是否满足条件
group() 对数据进行分组
having() 再分组之后进行过滤 having不单独出现 仅用于分组之后进行过滤
distinct() 去重
order() 用于对筛选后的数据 进行排序
limit