mysql:SQL语句的分类及使用
时间:2019-04-04 14:42 来源:未知 作者:IT
DDL(Data Definition Languages)语句:
数据定义语言,定义不同的数据段,数据库,表,列,索引等数据库对象。
常用的关键字 create,drop,alter等,简单的说,就是对数据库内部的对象进行创建、删除、修改的操作语言。
1.create
create table 表名; 创建表
create database 数据库名; 创建数据库
2.drop
drop table 表名; 删除表
drop database 数据库名 删除数据库
3.修改表
改表名: alter table 旧表名 rename 新表名
修改属性类型: alter table 表名 modify 属性名 新属性类型
修改属性名和属性类型:alter table 表名 change 旧属性名 新的属性名 属性类型
增加字段: alter table 表名 add 属性名 属性类型 【完整约束】
删除字段:alter table 表名 drop 属性名 ;
修改属性排序: alter table 表名 modify 属性名 属性类型 after 属性名 属性类型
修改表的存储引擎: alter table 表名 engine=innodb\myisam;
DML(Data Manipulation language):数据操纵语句,用于添加,删除,更新和查询数据库的记录,并检查数据完整性,常用的语句关键字主要包括insert ,delete,udpate,select;
1.插入记录
insert into 表名(字段1,字段2,....) values(value1,value2,...)
2.更新记录
update 表名 set 字段1=值1,字段2=值2,......where [condition]
3.删除记录
delete from 表名 [where condition]
4.查询记录
select * from 表名 【where contion】
4.1查询不重复的记录
select distinct 字段名 from 表名;
4.2多条件查询
在很多情况下,用户并不需要查询所有的记录,而只是需要根据限定条件来查询一部分数据,用where关键字可以实现这样的操作。
select * from 表名 where【contion】
where之后可以是 = > < != or and
4.3排序和限制
select * from 表名 order by 字段名 【desc|asc】
order by后面可以跟多个字段
对于排序后的数据希望只显示一部分,使用limit关键字来实现;
select .................... limit [offset_start,row_count]
offset_start 表示起始位置;
row_count 表示显示的行数;
4.4聚合
很多情况下,我们需要进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数
select [字段名1,字段名2,字段名3,.....] fun_name from 表名
[where contiton]
[group by 字段名1,字段名2,.....]
[with rollup]
[having where_contion];
fun_name 聚合函数 sum,count,max,min
group by 关键字表示要进行分类聚合的字段,
with rollup 可选语法,表明是否对分类聚合后的结果进行再汇总,
having 表示对分类后的结果再进行条件过滤。
where和having的区别:
having是对聚合后的结果进行条件过滤
where是在聚合前就对记录进行过滤。
(5)表连接
当需要同时显示多个表中的字段时,就可以用表连接来实现这样的功能。
表连接分为内连接和外链接,内连接仅仅选出两张表中相互匹配的记录,而外链接会选出其他不匹配的记录。
外连接分为左连接和右连接。
左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
select * from 左表名 left join 右表名 on 左表名.字段=右表名.字段
右连接:包含所有的右边表中的记录甚至左边表中没有和它匹配的记录。
select * from 左表名 right join 右表名 on 左表名.字段=右表名.字段
(6)子查询
某些情况,当我们查询的时候,需要的条件是另外一个select语句的结果,这个时候,就要用到子查询。
用于子查询的关键字主要包括in ,in not = != exists not exists
(7)记录联合
经常会碰到将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,
需要用到union 和union all 关键字
select 字段名 from 表名1
union all |union
select 字段名 from 表名2
union与union all主要区别:
unino all把结果集直接合并在一起,union是将union all 后的结果进行一次distinct,去除重复记录后的结果。
DCL语句:主要是DBA用来管理系统中的对象权限时所使用。
dcl数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。定义了数据库,表、字段、用户的访问权限和安全级别。主要包括grant,revoke;
(责任编辑:IT)
DDL(Data Definition Languages)语句: 数据定义语言,定义不同的数据段,数据库,表,列,索引等数据库对象。 常用的关键字 create,drop,alter等,简单的说,就是对数据库内部的对象进行创建、删除、修改的操作语言。 1.create create table 表名; 创建表 create database 数据库名; 创建数据库 2.drop drop table 表名; 删除表 drop database 数据库名 删除数据库 3.修改表 改表名: alter table 旧表名 rename 新表名 修改属性类型: alter table 表名 modify 属性名 新属性类型 修改属性名和属性类型:alter table 表名 change 旧属性名 新的属性名 属性类型 增加字段: alter table 表名 add 属性名 属性类型 【完整约束】 删除字段:alter table 表名 drop 属性名 ; 修改属性排序: alter table 表名 modify 属性名 属性类型 after 属性名 属性类型 修改表的存储引擎: alter table 表名 engine=innodb\myisam; DML(Data Manipulation language):数据操纵语句,用于添加,删除,更新和查询数据库的记录,并检查数据完整性,常用的语句关键字主要包括insert ,delete,udpate,select; 1.插入记录 insert into 表名(字段1,字段2,....) values(value1,value2,...) 2.更新记录 update 表名 set 字段1=值1,字段2=值2,......where [condition] 3.删除记录 delete from 表名 [where condition] 4.查询记录 select * from 表名 【where contion】 4.1查询不重复的记录 select distinct 字段名 from 表名; 4.2多条件查询 在很多情况下,用户并不需要查询所有的记录,而只是需要根据限定条件来查询一部分数据,用where关键字可以实现这样的操作。 select * from 表名 where【contion】 where之后可以是 = > < != or and 4.3排序和限制 select * from 表名 order by 字段名 【desc|asc】 order by后面可以跟多个字段 对于排序后的数据希望只显示一部分,使用limit关键字来实现; select .................... limit [offset_start,row_count] offset_start 表示起始位置; row_count 表示显示的行数; 4.4聚合 很多情况下,我们需要进行一些汇总操作,比如统计整个公司的人数或者统计每个部门的人数 select [字段名1,字段名2,字段名3,.....] fun_name from 表名 [where contiton] [group by 字段名1,字段名2,.....] [with rollup] [having where_contion]; fun_name 聚合函数 sum,count,max,min group by 关键字表示要进行分类聚合的字段, with rollup 可选语法,表明是否对分类聚合后的结果进行再汇总, having 表示对分类后的结果再进行条件过滤。 where和having的区别: having是对聚合后的结果进行条件过滤 where是在聚合前就对记录进行过滤。 (5)表连接 当需要同时显示多个表中的字段时,就可以用表连接来实现这样的功能。 表连接分为内连接和外链接,内连接仅仅选出两张表中相互匹配的记录,而外链接会选出其他不匹配的记录。 外连接分为左连接和右连接。 左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录 select * from 左表名 left join 右表名 on 左表名.字段=右表名.字段 右连接:包含所有的右边表中的记录甚至左边表中没有和它匹配的记录。 select * from 左表名 right join 右表名 on 左表名.字段=右表名.字段 (6)子查询 某些情况,当我们查询的时候,需要的条件是另外一个select语句的结果,这个时候,就要用到子查询。 用于子查询的关键字主要包括in ,in not = != exists not exists (7)记录联合 经常会碰到将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来, 需要用到union 和union all 关键字 select 字段名 from 表名1 union all |union select 字段名 from 表名2 union与union all主要区别: unino all把结果集直接合并在一起,union是将union all 后的结果进行一次distinct,去除重复记录后的结果。 DCL语句:主要是DBA用来管理系统中的对象权限时所使用。 dcl数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。定义了数据库,表、字段、用户的访问权限和安全级别。主要包括grant,revoke; (责任编辑:IT) |