数据库_MySQL_常用DDL、DML、DCL语言整理(附样例)
2016-05-24 14:02
721 查看
在介绍这些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:
后面的带数字表示此类型的字段长度
数值型:
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
----Data Definition Language 数据库定义语言
如 create procedure之类
创建数据库
CREATE DATABASE [IF NOT EXISTS] DBNAME [CHARACTER SET 'CHAR_NAME'] [COLLATE 'COLL_NAME'] |
创建一张新表
CRTATE TABLE [IF NOT EXISTS] TBNAME(col_name col_definition,...) |
也可以这样写(区别在于单独定义主键,唯一键和索引):
查询出一张表的数据后创建新表(字段定义会丢失,数据会保留)
CREATE TABLE TBNAME SELECT... |
以一张表的格式定义,创建一张新的空表
CREATE TABLE TBNAME1 LIKE TBNAME2 |
ALTER TABLE tb_name MODIFY #修改字段定义 CHANGE #可以修改字段名和字段定义 ADD DROP |
给表添加字段
修改course字段为Course字段,并放在Name字段之后(修改字段需要带上新的字段的定义)ps:MODIFY只能修改字段定义
CREATE INDEX index_name ON TABLE (col_name[(length)] [ASC|DESC]) [USING {BTREE|HASH}]; |
DROP INDEX index_name ON TBNAME; |
查看表的索引:SHOW INDEXES FROM TBNAME;
DML
----Data Manipulation Language 数据操纵语言
如insert,delete,update,select(插入、删除、修改、检索)
插入修改数据
#如果每个字段都有值,不需要写字段名称,每组值用,隔开
mysql>INSERT INTO tb_name (col1,col2) VALUES ('STRING',NUM),('STRING',NUM); mysql>INSERT INTO tb_name SET col1='string',col2='string'; mysql>INSERT INTO tb_name (col1,col2,col3) SELECT...; |
替换数据:
和UPDATE使用方式一样,只要将UPDATE换成REPLACE即可
删除数据
mysql>DELETE FROM tb_name WHERE conditions; |
mysql>TRUNCATE tb_name |
单表查询:
mysql>SELECT [DISTINCT] column FROM tb_name WHERE CONDITION; |
#基本投影查询
多表查询:
#指定已哪个字段连接2张表
子查询
#查询年龄大于平均年龄的数据
创建视图
CREATE VIEW VIEW_NAME AS SELECT.... |
DCL
----Data Control Language 数据库控制语言 如grant,deny,revoke等,只有管理员才有这样的权限。
创建用户
mysql>CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD' |
mysql>DROP USER 'USERNAME'@'HOSHOST支持通配符 _:任意单个字符 %:任意多个字符 |
mysql>GRANT pri1,pri2...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [IDENTIFIED BY 'PASSWORD'] |
mysql>REVOKE pri1,pri2...ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST'; |
mysql>SHOW GRANTS FOR 'USERNAME'@'HOST'; |
相关文章推荐
- MySQL中的insert ignore into, replace into等的一些用法小结(转)
- mysql5.6允许远程服务器访问数据库
- Mysql Join语法解析与性能分析
- Hibernate+maven+mysql
- mysql5.6.30之count(*)详解
- mysql Threads_created 增长过快的解决
- mysql 数据类型
- mysql 性能优化方向
- MySQL性能优化的21个最佳实践 和 mysql使用索引
- MySQL慢查询
- MySQL数据库表操作的经典语句
- Node.js 简单的MySQL proxy
- MYSQL读写分离
- Mysql 连接sleep状态问题解决。
- MySQL 5.7 新特性大全和未来展望
- MySQL索引
- Mac EI 10.11.3 MySQL5.7.11 .dmg 安装(便捷设置,密码重置,卸载)
- MySQL和SQLServer比较
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- mysql如何添加用户及1364错误处理