MySQL常用DDL、DML、DCL语言整理(附样例)

2014-11-24 17:54:47 · 作者: · 浏览: 1

在介绍这些SQL语言之前,先罗列一下mysql的常用数据类型数据类型修饰,供查询参考


后面的带数字表示此类型的字段长度



数值型:


TINYINT 1 ,SMALLINT 2,MEDIUMINT 3 ,INT 4,BIGINT 8,DECIMAL,FLOAT 4,DOUBLE 8,BIT



字符串型


CHAR,VARCHAR,BINARY,VBINARY,TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOG,TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT,EMUM,SET


日期时间型


date,time,datetime,timestamp


数据限定修饰:


NOT NULL,NULL,DEFAULT,AUTO_INCREMENT,UNSIGNED,PRIMARY KEY,UNIQUE KEY,FOREIGN KEY


CHARACTER SET #ps:SHOW CHARACTER SET 显示当前数据库所支持的所有字符集


COLLATION #ps:SHOW COLLATION 显示所支持的所有排序规则


以下是SQL的每种DDL,DCL,DML语言


DDL


如 create procedure之类


创建数据库


修改:ALTER 删除:DROP


创建一张新表



EXAMPLE:



也可以这样写(区别在于单独定义主键,唯一键和索引):




查询出一张表的数据后创建新表(字段定义会丢失,数据会保留)



EXAMPLE:




以一张表的格式定义,创建一张新的空表



修改表:


EXAMPLE:


给表添加字段



添加惟一键



修改字段


修改course字段为Course字段,并放在Name字段之后(修改字段需要带上新的字段的定义)ps:MODIFY只能修改字段定义



重命名表名



添加一个外键约束



创建索引


删除索引



查看表状态:SHOW STATUS LIKE 'TBNAME';


查看表的索引:SHOW INDEXES FROM TBNAME;



DML


如insert,delete,update,select(插入、删除、修改、检索)


插入修改数据


#如果每个字段都有值,不需要写字段名称,每组值用,隔开


EXAMPLE:





更新数据





替换数据


和UPDATE使用方式一样,只要将UPDATE换成REPLACE即可


删除数据



清空表:将会重置计数器


查询数据


单表查询:


EXAMPLE:


#基本投影查询




#重复的结果只显示一次




#组合条件,可以使用AND,OR,NOT,XOR组合多个条件




#使用BETWEEN...AND...筛选出年龄介于20-25之间的数据




#查询Name以Y开头的的数据,%表示任意长度的任意字符,_表示任意单个字符




#使用正则表达式匹配查询,关键词为RLINK或者REGEXP




#使用IN关键词,将条件限定在一个列表中。用IS关键词,表示条件是否为空(IS NULL 或者 IS NOT NULL)




#将查询的结果进行排序




#查询结果别名显示




#LIMIT限定查询结果的条数,LIMIT 2,3表示偏移2条数据后,取3条数据



#求平均数:AVG(),最大值:MAX() 最小值MIN() 数量:COUNT() 求和:SUM()




#分组GROUP BY



#别名:AS




#过滤:HAVING




多表查询:



#指定已哪个字段连接2张表




#连接时指定别名




#左外连接...LEFT JION...ON...



#右外连接...RIGHT JION...ON...




子查询



#查询年龄大于平均年龄的数据




#在FROM中使用子查询




#联合查询





创建视图



DCL


创建用户


删除用户


授权


取消授权


查看授权


EXAMPLE: