天天看点

SQL之四种语言:DDL,DML,DCL,TCL

1、数据定义语言DDL

(定义数据库对象:数据库、表、列、索引)

  •    操作数据库

create database 库名

drop databese 库名

Use 库名: 切换正在操作的数据库

Select database(): 查看正在使用的数据库名

Show databases

Show create database 库名:产看数据库的的定义信息

数据库不能改名:建一个新库,然后将旧库复制过来;在将旧库删掉

  • 操作表结构

Create table 表名(列名 类型 [约束], )engine myisam/innodb/bdb charset utf8/gbk

Create table 表名1 as select A,B from 表名2:使用已有的表数据创建新表

Create view news as select from n1 union select from n2 union.........

Drop table 表名【数据结构全部删除】

Truncate 表名:清空表,插入数据时id从头开始排列【保留表结构,释放表空间】

Show tables

Describe 表名

Rename table 表名 to 新表名

Alter table 表名 rename (to)  新表名

Alter table 表名 add 列名 类型 [约束]

Alter table 表名 drop 列名

Alter table 表名 change 旧列名 新列名 类型 约束

Alter table 表名 modify 列名 类型 约束

  • 操作索引

Create index 索引名 on 表名(列名)

Create table 表名(INDEX 索引名):在表创建时

Drop 索引名 on 表名

Alter table 表名 drop index 索引名

Show index from 表名

2、数据操作语言DML  插入,删除,修改

只对表的内部数据进行操作,不涉及表的定义和结构的修改)

字符串和日期需要使用引号

Insert into 表名 values (…..),(……) 插入多行数据,全部列名对应的数据

Insert into 表名 列名 values(…),()列名与数值对应即可,可以对部分列名赋值

Insert ignore into 当存在unique冲突时,会忽略新的插入 https://blog.csdn.net/mouday/article/details/81281946

Replace into 当存在unique冲突时,删除原来的记录,添加新的记录

Delete from 表名 where

Update 表名 set 列名1=值1, 列名2=值2 where

3、数据查询语言DQL

Select distinct(列名)

From a left join b on 列1=列2

Where

Having

Group by

Order by

limit

4、数据控制语言DCL

(控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别)

GRANT

EVOKE

COMMIT

ROLLBACK