95992828九五至尊2

三种类型语句

四月 6th, 2019  |  882828九五至尊手机版

SQL 语句主要可以分开为以下 3 个门类。

SQL 语句首要能够划分为以下 叁 个体系。

DDL(Data Definition
Languages)语句:数据定义语言,那些讲话定义了分裂的数据段、数据库、表、列、索引等数据库对象的定义。常用的语句关键字首要回顾create、drop、alter等。

DDL(Data Definition
Languages)语句:数据定义语言,这几个话语定义了分裂的数据段、数据库、表、列、索引等数据库对象的概念。常用的语句关键字主要不外乎
create、drop、alter等。

 正是对数据库内部的靶子开始展览创办、删除、修改的操作语言

 正是对数据库内部的对象开始展览创办、删除、修改的操作语言

 

 

DML(Data Manipulation Language)语句
:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字重要包括insert、delete、udpate 和select 等。

DML(Data Manipulation Language)语句
:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字首要总结insert、delete、udpate 和select 等。

对数据库中表记录的操作

对数据库中表记录的操作

 

 

882828九五至尊手机版,DCL(Data Control
Language)语句:数据控制语句,用于控制分化数额段直接的许可和做客级别的言语。这一个言辞定义了数据库、表、字段、用户的造访权限和安全级别。重要的语句关键字归纳grant、revoke 等。

DCL(Data Control
Language)语句:数据控制语句,用于控制分歧数量段直接的批准和做客级别的说话。这一个话语定义了数据库、表、字段、用户的拜会权限和安全级别。首要的语句关键字总结grant、revoke 等。

首要是DBA用来治本类别中的对象权限时所采纳,一般的开发人士很少使用

要害是DBA用来保管体系中的对象权限时所选择,一般的开发人士很少使用

安装MySQL 时系统活动创立的,其个别功能如下。
information_schema:首要囤积了系统中的1些数据库对象消息。比如用户表新闻、列新闻、权限音信、字符集音讯、分区音讯等。
cluster:存储了系统的集群消息。
mysql:存储了系统的用户权限信息。
test:系统自动创造的测试数据库,任何用户都能够应用。

设置MySQL 时系统自动成立的,其分别职能如下。
information_schema:主要囤积了系统中的壹些数据库对象消息。比如用户表消息、列消息、权限音讯、字符集消息、分区消息等。
cluster:存款和储蓄了系统的集群信息。
mysql:存款和储蓄了系统的用户权限新闻。
test:系统活动创造的测试数据库,任何用户都足以利用。

1.DDL

1.DDL

(一).创制数据库

create database dbname;

 

能够用  show databases; 
来查阅有怎么着数据库

采纳数据库 ;

use dbname;

 

(壹).创立数据库

create database dbname;

 

能够用  show databases; 
来查阅有如何数据库

选择数据库 ;

use dbname;

 

(二).删除数据库

drop database dbname;

 

(二).删除数据库

drop database dbname;

 

(3).创建表

create table tablename (column_name_1 column_type_1 constraints,column_name_2  column_type_2  constraints , ……column_name_n  column_type_n constraints);

 

 

能够用 上边包车型大巴语法查看表的定义:

desc tablename; 

 

 

(3).创建表

create table tablename (column_name_1 column_type_1 constraints,column_name_2  column_type_2  constraints , ……column_name_n  column_type_n constraints);

 

 

能够用 下边包车型地铁语法查看表的定义:

desc tablename; 

 

 

(4).删除表

drop table tablename;

 

(4).删除表

drop table tablename;

 

(5).修改表

修改表类型:

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name];

 

充实表字段:

ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name];

 

剔除字段:

ALTER TABLE tablename DROP [COLUMN] col_name;

 

字段改名:

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name];

 

   注意:change 和 modify都得以修改表的定义,区别的是 change
前面须要写四回列名,不便宜。但是 change
的独到之处是足以修改列名称,modify则不可能。
修改字段排列顺序:
前面介绍的的字段扩展和改动语法(ADD/CNAHGE/MODIFY)中,都有三个可选项
[first|aftercolumn_name],这一个选项可以用来修改字段在表中的职位,暗中认可ADD 扩展的新字段
是加在表的末段地方,而 CHANGE/MODIFY 默许都不会转移字段的职位。
    注意:CHANGE/FI奥迪Q三ST|AFTEWrangler COLUMN 那个重点字都属于 MySQL 在正儿八经 SQL
上的恢宏,在其它数据库上不自然适用。

(5).修改表

修改表类型:

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name];

 

扩张表字段:

ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name];

 

剔除字段:

ALTER TABLE tablename DROP [COLUMN] col_name;

 

字段改名:

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name];

 

   注意:change 和 modify都足以修改表的定义,分化的是 change
后边必要写一次列名,不便于。但是 change
的亮点是可以修改列名称,modify则不可能。
修改字段排列顺序:
前方介绍的的字段扩张和修改语法(ADD/CNAHGE/MODIFY)中,都有3个可选项
[first|aftercolumn_name],那一个选项能够用来修改字段在表中的岗位,默认ADD 扩张的新字段
是加在表的最后地点,而 CHANGE/MODIFY 私下认可都不会改变字段的岗位。
    注意:CHANGE/FI福睿斯ST|AFTELacrosse COLUMN 那几个重点字都属于 MySQL 在正式 SQL
上的壮大,在其他数据库上不肯定适用。

(6).表改名

ALTER TABLE tablename RENAME [TO] new_tablename;

 

(6).表改名

ALTER TABLE tablename RENAME [TO] new_tablename;

 

2.DML

2.DML

(1).插入记录

一条记下:

INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn); /*field和value一一对应,field可以省略*/

 

 

多条记下:

INSERT INTO tablename (field1, field2,……fieldn)
    VALUES
    (record1_value1, record1_value2,……record1_valuesn),
    (record2_value1, record2_value2,……record2_valuesn),
    ……
    (recordn_value1, recordn_value2,……recordn_valuesn)
;
/*field可以省略*/

 

 

(1).插入记录

一条记下:

INSERT INTO tablename (field1,field2,……fieldn) VALUES(value1,value2,……valuesn); /*field和value一一对应,field可以省略*/

 

 

多条记下:

INSERT INTO tablename (field1, field2,……fieldn)
    VALUES
    (record1_value1, record1_value2,……record1_valuesn),
    (record2_value1, record2_value2,……record2_valuesn),
    ……
    (recordn_value1, recordn_value2,……recordn_valuesn)
;
/*field可以省略*/

 

 

(2).更新记录

更新一个表中的数码:

UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION];

 

履新八个表中的多少:

UPDATE t1,t2…tn set t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION]; /*t为表名*/

 

 

(二).更新记录

更新3个表中的数量:

UPDATE tablename SET field1=value1,field2.=value2,……fieldn=valuen [WHERE CONDITION];

 

履新多个表中的数额:

UPDATE t1,t2…tn set t1.field1=expr1,tn.fieldn=exprn [WHERE CONDITION]; /*t为表名*/

 

 

(三).删除记录

去除二个表中记录:

DELETE FROM tablename [WHERE CONDITION];

 

删去四个表中记录:

DELETE t1,t2…tn FROM t1,t2…tn [WHERE CONDITION];

 

    注意:不管是单表依旧多表,不加 where
条件将会把表的具备记录删除,所以操作时一定要小心。

(3).删除记录

除去2个表中记录:

DELETE FROM tablename [WHERE CONDITION];

 

删去八个表中著录:

DELETE t1,t2…tn FROM t1,t2…tn [WHERE CONDITION];

 

    注意:不管是单表还是多表,不加 where
条件将会把表的富有记录删除,所以操作时必定要小心。

(四).查询记录

着力的语法:

SELECT * FROM tablename [DISTINCT] [WHERE CONDITION]; /*distinct是消除重复的记录,where条件查询*/

 

 

排序和界定:

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],……fieldn [DESC|ASC]];
/* DESC 和 ASC 是排序顺序关键字,DESC 表示按照字段进行降序排列,ASC 则表示升序排列,如果不写此关键字默认是升序排列。ORDER BY 后面可以跟多个不同的排序字段,并且每个排序字段可以有不同的排序顺序。*/

 

限制显示:

SELECT ……[LIMIT offset_start,row_count];

 

    注意:limit 属于 MySQL 扩充 SQL92后的语法,在别的数据库上并无法通用。limit 平常和 order by
壹起协作使用来开始展览记录的分页展现。
聚合:

SELECT [field1,field2,……fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,……fieldn
[WITH ROLLUP]]
[HAVING where_contition]

 

对其参数实行以下表达。

 fun_name 代表要做的汇集操作,相当于聚合函数,常用的有
sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。

GROUP BY
关键字表示要开始展览分拣聚合的字段,比如要遵循部门分类总计职员和工人数量,部门就活该写在
group by 后边。

 WITH ROLLUP 是可选语法,表明是不是对分类聚合后的结果进行再集中。

 HAVING 关键字表示对分类后的结果再展开标准化的过滤

    注意:having 和 where 的分别在于 having
是对聚集后的结果开始展览规范的过滤,而 where
是在集聚前就对记录进行过滤,假设逻辑允许,大家尽量用 where
先过滤记录,
这样因为结果集减小,将对聚集的作用大大进步,最终再依照逻辑看是否用
having 举办再过滤。

(肆).查询记录

主干的语法:

SELECT * FROM tablename [DISTINCT] [WHERE CONDITION]; /*distinct是消除重复的记录,where条件查询*/

 

 

排序和限制:

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],……fieldn [DESC|ASC]];
/* DESC 和 ASC 是排序顺序关键字,DESC 表示按照字段进行降序排列,ASC 则表示升序排列,如果不写此关键字默认是升序排列。ORDER BY 后面可以跟多个不同的排序字段,并且每个排序字段可以有不同的排序顺序。*/

 

限定展现:

SELECT ……[LIMIT offset_start,row_count];

 

    注意:limit 属于 MySQL 扩张 SQL9二后的语法,在别的数据库上并无法通用。limit 日常和 order by
一起协作使用来进展记录的分页呈现。
聚合:

SELECT [field1,field2,……fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,……fieldn
[WITH ROLLUP]]
[HAVING where_contition]

 

对其参数举行以下表明。

 fun_name 表示要做的集聚操作,也正是聚合函数,常用的有
sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)。

GROUP BY
关键字表示要开始展览分拣聚合的字段,比如要依据部门分类总结职员和工人数量,部门就活该写在
group by 后边。

 WITH ROLLUP 是可选语法,申明是还是不是对分类聚合后的结果开始展览再汇总。

 HAVING 关键字表示对分类后的结果再展开规范的过滤

    注意:having 和 where 的分别在于 having
是对聚集后的结果开始展览标准的过滤,而 where
是在集结前就对记录举行过滤,假使逻辑允许,我们尽量用 where
先过滤记录,
如此因为结果集减小,将对聚集的功能大大进步,最终再依照逻辑看是否用
having 进行再过滤。

(5).子查询:

记录联合:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
……
UNION|UNION ALL
SELECT * FROM tn;

 

    注意:UNION 和 UNION ALL 的要紧区别是 UNION ALL
是把结果集直接统1在1块儿,而 UNION 是将UNION ALL 后的结果实行一回DISTINCT,去除重复记录后的结果。

 

(5).子查询:

笔录联合:

SELECT * FROM t1
UNION|UNION ALL
SELECT * FROM t2
……
UNION|UNION ALL
SELECT * FROM tn;

 

    注意:UNION 和 UNION ALL 的重点分化是 UNION ALL
是把结果集直接统壹在一起,而 UNION 是将UNION ALL 后的结果举行三次DISTINCT,去除重复记录后的结果。

 

3.DCL

3.DCL

相关文章

Your Comments

近期评论

    功能


    网站地图xml地图