Loading

mariadb 数据操作

  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  30174 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  刷新权限

 

posted @ 2019-04-30 20:19  Lust4Life  阅读(327)  评论(0)    收藏  举报