拷贝表 ***
create table copy_table select *from customer ;
拷贝结构 与数据
create table copy_table select *from customer where 0 > 1;
仅拷贝结构
共同点: 索引 不能拷贝 描述不能拷贝(自增)
记录详细操作的:
以下语法中
[] 表示可选的
{}表示必选的
增
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 用于去除重复的记录
只取出完全相同的记录
当然 你也可以手动指定要显示的列 从而来去重
4.表达式 支持四则运算
执行顺序
def select()
from() 打开文件
where() 读取每一行并判断是否满足条件
group() 对数据进行分组
having() 再分组之后进行过滤 having不单独出现 仅用于分组之后进行过滤
distinct() 去重
order() 用于对筛选后的数据 进行排序
limit() 限制显示的条数
最后根据select后制定的字段来显示数据
准备数据:
create table stu(id int primary key auto_increment,name char(10),math float,english float);
insert into stu values(null,"赵云",90,30); insert into stu values(null,"小乔",90,60);
insert into stu values(null,"小乔",90,60); insert into stu values(null,"大乔",10,70);
insert into stu values(null,"李清照",100,100); insert into stu values(null,"铁拐李",20,55);
insert into stu values(null,"小李子",20,55);
查询所有人的总成绩
select name,english+math 总分 from stu;
select name,english+10 英语 from stu;
需要 在字段的数据前加上字段名:
name:赵云 english:90 math:30
需要使用字符串拼接函数
concat(字符串)
案列:
select
concat("name:",name),
concat("english:",english),
concat("math:",math)
from stu;
观光代码 **
select
(case
when english + math < 150 then
concat(name," shit")
when english + math >= 150 then
concat(name," nice")
end) 评语 from stu;