我总结的常用SQL语句
作者:网络转载 发布时间:[ 2017/5/24 10:47:42 ] 推荐标签:数据库 SQL
建表:
Set sql_mode=’strict_trans_tables’; 存储引擎启用严格模式,非法数据值被拒绝
Create table t3(id int(4) primary key auto_increment,sname char(4)); 设置id自动增长
Create table t3(id int(4) primary key auto_increment,sname char(4))auto_increment=100; id从100开始自动增长
Alter table t3 auto_increment=200; 修改已存在的表,id从200开始
Set @@auto_increment_increment = 5; 所有自动增长的每次增长5
Delete from t3; 删除t3表中的内容,id自增会延续之前的数字继续增长
Truncate t3; 截断表,此时id自增长从1开始
Create table t3(id int(4) primary key auto_increment,gender char(4) default’匿名’); 性别默认匿名
Create table t3(id int(4) primary key auto_increment comment ‘t3表的主键’,,gender char(4) default’匿名’ comment ‘性别’) comment=‘用户表’; 表列类型注释
1、create able 表名(…)engine = myisam
2、create able 表名(…)engine = innodb 为表设置引擎,两种方式
Create database db character set gbk collate gbk_chinese_ci; 改变字符集类型为gbk,且校验规则为…
Set names gbk; 设置当前客户端的字符集
Create table 表名(…)charset = utf8; 创建时设置字符集
修改数据表:
Alter table 旧表名 rename as 新表名; 修改表名
Alter table 表名 add 字段名 列类型【属性】; 增加字段
Alter table 表名 modify 字段名 列类型【属性】; 修改字段
Alter table 表名 change 旧字段名 新字段名 列类型【属性】 修改字段名和内容
Alter table 表名 drop 字段名; 删除字段
Alter table 表名 add constraint 主键名 primary key(字段名); 添加主键
Alter table 表名 add constraint 外键名 foreign key(多的一方字段名) 表名(一的一方的主键字段名); 添加外键
Alter table 表名drop primary key; 删除主键
删除表:
Drop table[if exists] 表名; 删除表
Truncate命令:
用于完全清空表数据,但表结构、索引、约束等不变。 Truncate [table] table_name
与delete命令的异同:
相同:都能删除数据、不删除表结构、但truncate速度更快
不同:使用truncate table 重新设置auto_increment计数器
使用truncate table不会对事务有影响
事务的ACID原则:
原子性、一致性、隔离性、持久性
DQL语言:数据查询语句
Distinct关键字
去掉select查询返回的结果中重复的记录,只返回一条
语法:select distinct 字段名1,字段名2…from 表名
Select version(); 查询版本号
Select @@auto_increment_increment; 查询步长
转义符:
Select * from student were studentname like ‘%:%%’ escape ‘:’;将冒号当做转义符,使用escape
内连接查询:可省略inner关键字
Select 字段1,字段2,… from table_1 inner join table_2 on table_1.字段x=table_2.字段y
左外连接:left join
Select 字段1,字段2,… from table_1 left[outer] join table_2 on table_1.字段x=table_2.字段y
Mysql的limit:
Select * from ‘表名’ limit 5; 返回前5条记录
Select * from ‘表名’ limit 5,10; 返回从第6条记录起的10条记录
Group by的用法:常与having结合使用
Select count(r.studentNo) ‘总条数’,max(r.studentresult) ‘高分’, min(r.studentresult) ‘低分’,avg(r.studentresult) ‘平均分’,r.subjectNo from result r group by r.subjectNo having avg(r.studentresult)>=60; 按照不同的课程分组,分别算出其平均分、高分和低分,对于低于60分平均分的不予显示
注意:只有作为分组条件出现的列,以及聚合函数计算结果可以放在select后面
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11