1 DDL: Data Defination Language 数据定义语言CREATE,DROP,ALTER
2 DML: Data Manipulation Language 数据操纵语言INSERT,DELETE,UPDATE
3 DCL:Data Control Language 数据控制语言GRANT,REVOKE,COMMIT,ROLLBACK
4 DQL:Data Query Language 数据查询语言SELECT
5
6 创建数据库:
7 CREATE DATABASE|SCHEMA [IF NOT EXISTS] 'DB_NAME';
8 CHARACTER SET 'character set name’COLLATE 'collate name'
9 show create database test ;查看字符集
10 ALTER DATABASE DB_NAME character set utf8;
11 DROP DATABASE|SCHEMA [IF EXISTS] 'DB_NAME';
12 show character set ;
13 show collation ; 排序规则
14
15 创建表:
16 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name[(create_definition,...)] [table_options][partition_options] select_statement
17 查询现存表创建;新表插入查询数据,但是目录结构有关属性选项不会继承。
18 create table t12 select * from toc ;
19 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKEold_tbl_name | (LIKE old_tbl_name) }
20 复制现有表的表结构:
21 create table t13 like coc ;
22 查看创建的表的数据引擎及字符集
23 show create table t13;
24
25 CREATE TABLE [IF NOT EXISTS] ‘tbl_name’
26 (col1 type1 修饰符, col2type2 修饰符, ...)
27
28 show create table coc ;
29 CREATE TABLE `coc` (
30 `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
31 `ClassID` tinyint(3) unsigned NOT NULL,
32 `CourseID` smallint(5) unsigned DEFAULT NULL,
33 PRIMARY KEY (`ID`)
34 ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8
35
36 字段信息:
37 • col type1
38 • PRIMARY KEY(col1,...)
39 • INDEX(col1, ...)
40 • UNIQUE KEY(col1, ...)
41
42 列名 数据类型 修饰符
43 修饰符 所有类型适用:
44 • NULL 数据列可包含NULL值
45 • NOT NULL 数据列不允许包含NULL值
46 • DEFAULT 默认值
47 • PRIMARY KEY 主键
48 • UNIQUE KEY 唯一键
49 • CHARACTER SET name 指定一个字符集
50
51 适用于数值型
52 • AUTO_INCREMENT 自动递增,适用于整数类型
53 • UNSIGNED 无符号
54
55 示例:
56 CREATE TABLE students (id int UNSIGNED NOT NULL PRIMARY
57 KEY,name VARCHAR(20)NOT NULL,age tinyint UNSIGNED);
58 CREATE TABLE students2 (id int UNSIGNED NOT NULL ,name
59 VARCHAR(20) NOT NULL,age tinyint UNSIGNED,PRIMARY KEY(id,name));
60
61
62 表操作:
63 SHOW ENGINES
64 SHOW TABLES [FROM db_name]
65 DESC [db_name.]tb_name
66 SHOW COLUMNS FROM [db_name.]tb_name
67 DROP TABLE [IF EXISTS] tb_name
68 show table status like 'coc' \G; (表状态查询)
69 SHOW TABLE STATUS FROM db_name (数据库中所有表的状态)
70
71 修改表:
72 ALTER TABLE 'tbl_name'
73 字段:
74 添加字段:add
75 ADD col1 data_type [FIRST|AFTER col_name]
76 删除字段:drop
77 修改字段:
78 alter(默认值), change(字段名), modify(字段属性)
79 索引:
80 添加索引:add index
81 删除索引:drop index
82
83 查看表上索引: SHOW INDEXES FROM [db_name.]tbl_name;
84
85 示例:
86 ALTER TABLE students RENAME s1;
87 ALTER TABLE s1 ADD phone varchar(11) AFTER name;
88 ALTER TABLE s1 MODIFY phone int;
89 ALTER TABLE s1 CHANGE COLUMN phone mobile char(11);
90 ALTER TABLE s1 DROP COLUMN mobile;
91 ALTER TABLE s1 character set utf8;
92 ALTER TABLE s1 change name name varchar(20) character set utf8;
93 ALTER TABLE students ADD gender ENUM('m','f')
94 ALETR TABLE students CHANGE id sid int UNSIGNED NOT NULL
95 PRIMARY KEY;
96 ALTER TABLE students drop primary key ;
97 ALTER TABLE students ADD UNIQUE KEY(name);
98 ALTER TABLE students ADD INDEX(age);
99 ALTER TABLE students drop primary key ;
100 DESC students;
101 SHOW INDEXES FROM students;
102 ALTER TABLE students DROP age;
103
104 DML: insert delete update
105 insert
106 INSERT tbl_name [(col1,...)] VALUES (val1,...), (val21,...)
107 INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
108 [INTO] tbl_name [(col_name,...)]
109 SELECT ...
110 [ ON DUPLICATE KEY UPDATE
111 col_name=expr
112 [, col_name=expr] ... ]
113 update : 要添加限制条件
114 UPDATE [LOW_PRIORITY] [IGNORE] table_reference
115 SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
116 [WHERE where_condition]
117 [ORDER BY ...]
118 [LIMIT row_count]
119
120 delete: 限制条件,不然删除所有 :limit where
121 DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
122 [WHERE where_condition]
123 [ORDER BY ...]
124 [LIMIT row_count]
125
126 DQL
127 select 语句
128
129 Select 之后是逗号分隔列或星号(*)的列表,表示要返回所有列。
130 From 指定要查询数据的表或视图。
131 Join 根据某些连接条件从其他表中获取数据。
132 Where 筛选条件,过滤结果集中的行。
133 Group By 将一组行组合成小分组,并对每个小分组应用聚合函数。
134 Having 过滤器基于Group By子句定义的小分组。
135 Order By 指定用于排序的列的列表。
136 Limit 限制返回行的数量。
137 字段使用别名 cols AS alias col2 as alias
138 where 过滤选项与条件
139
140 过滤条件:布尔型表达式
141 算术操作符:+, -, *, /, %
142 比较操作符:=,<=>(相等或都为空), <>, !=(非标准SQL), >, >=, <, <=
143 BETWEEN min_num AND max_num
144 IN (element1, element2, ...)
145 IS NULL
146 IS NOT NULL
147 like
148 % 任意长度任意字符
149 _ 任意单个字符
150 逻辑操作符
151 NOT
152 AND
153 OR
154 XOR
155
156 GROUP:根据指定的条件把查询结果进行“分组”以用于做“聚合”运算
157 avg(), max(), min(), count(), sum()
158 HAVING: 对分组聚合运算后的结果指定过滤条件
159 ORDER BY: 根据指定的字段对查询结果进行排序升序:ASC降序:DESC
160 LIMIT [[offset,]row_count]:对查询的结果进行输出行数数量限制
161
162 对查询结果中的数据请求施加“锁”
163 FOR UPDATE: 写锁,独占或排它锁,只有一个读和写
164 LOCK IN SHARE MODE: 读锁,共享锁,同时多个读
165
166
167 多表查询; union 子查询
168
169 例子:
170 # select * from students order by name asc /desc ;(以某一列降序或升序)
171 select * from classes join students using (classid) ;
172 select * from classes join students using (classid) where teacherid is not null ;
173 select * from employees where birth_date > '1957-05-23' order by birth_date limit 30 ;
174 select * from employees where month(birth_date)=7 limit 30 ;( 函数to_days )
175 select * from employees order by rand() limit 30 ; 随机取记录
176 select distinct title from titles limit 10 ; 清除重复记录
177 count () :
178 count(*)计算所有,NULL也要
179 count(数据列名称),NULL值不计算在内
180
181
182 视图: 虚表 ,保存现有实表的查询
183 CREATE VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION]
184 SHOW CREATE VIEW view_name
185 DROP VIEW [IF EXISTS]
186 view_name [, view_name] ...
187 [RESTRICT | CASCADE]
188 视图中的数据事实上存储于“基表”中,因此,其修改操作也会针对基表实现;
189 其修改操作受基表限制
190
191 自定义函数:
192 存储过程:
193 触发器:
194
195
196 用户权限管理: 元数据表 MySQL
197 创建用户,默认有usage 权限
198 CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'password'];
199 RENAME USER old_user_name TO new_user_name;
200 DROP USER 'USERNAME'@'HOST‘
201 DROP USER ''@'localhost'; 删除空账号
202
203 修改密码的方法:
204 mysql>SET PASSWORD FOR 'user'@'host' = PASSWORD(‘password');
205 mysql>UPDATE mysql.user SET password=PASSWORD('password')
206 WHERE clause; 需flush privileges 生效
207
208 忘记管理员密码:
209 启动mysqld 时
210 配置文件里添加如下,重启服务
211 skip-grant-tables
212 skip-networking
213
214 管理类权限:
215 CREATE TEMPORARY TABLES
216 CREATE USER
217 FILE
218 SUPER
219 SHOW DATABASES
220 RELOAD
221 SHUTDOWN
222 REPLICATION SLAVE
223 REPLICATION CLIENT
224 LOCK TABLES
225 PROCESS
226 程序类权限: FUNCTION、PROCEDURE、TRIGGER
227 CREATE
228 ALTER
229 DROP
230 EXCUTE
231 库和表级别:DATABASE、TABLE
232 ALTER
233 CREATE
234 CREATE VIEW
235 DROP
236 INDEX
237 SHOW VIEW
238 GRANT OPTION:能将自己获得的权限转赠给其他用户
239
240 数据操做
241 SELECT
242 INSERT
243 DELETE
244 UPDATE
245
246 字段级别
247 SELECT(col1,col2,...)
248 UPDATE(col1,col2,...)
249 INSERT(col1,col2,...)
250 所有权限
251 ALL PRIVILEGES 或 ALL
252 授权:
253 GRANT priv_type [(column_list)],... ON [object_type] priv_level TO 'user'@'host'
254 [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
255 with_option: GRANT OPTION
256 | MAX_QUERIES_PER_HOUR count
257 | MAX_UPDATES_PER_HOUR count
258 | MAX_CONNECTIONS_PER_HOUR count
259 | MAX_USER_CONNECTIONS count
260
261 回收:
262 REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON
263 [object_type] priv_level FROM user [, user] ...
264 flush privileges 刷新权限