我总结的常用SQL语句

发表于:2017-5-24 09:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:妞妞女神小吃货    来源:博客园精华区

#
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后面
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号