Mysql DDL DML DCL DQL语句

悠悠 2022-12-29 12:57 335阅读 0赞

文章目录

    • DDL语句
          1. 库操作
          1. 表操作
    • DML语句
          1. 插入数据
          1. 更新数据
          1. 删除数据
    • DCL语句
        • 创建删除用户
        • 用户权限
        • 用户密码管理
    • DQL语句
          1. 简单的查询
          1. 高级查询
          1. 查询结果参与运算
          1. 多表关联查询

DDL语句

数据库定义语言
创造框架
数据库、表、视图、索引、存储过程

1. 库操作

  1. select version(),current_date #查询数据库的版本和系统时间
  2. create database 库名; # 创建库
  3. show databases # 列出所有的库
  4. use 库名 # 进入库
  5. select database(); # 查询当前所在的库
  6. drop database 库名; #删除库

查询库的使用状况

2. 表操作

  1. create table 表名(字段1 类型,字段2 类型...);
  2. show tables # 查看库里所有的表
  3. desc 表名; 查询表结构
  4. alter table 修改前表名称 rename 修改后表名称; #修改表名称
  5. drop table 表名; # 删除表
  6. create table 新表名 as select * from 旧表名; # 复制表
  7. show index from 表名 #查看索引
  8. alter table 表名称 add index 索引名称 (字段名); #添加索引
  9. drop index on 表名; #删除索引,主键索引不能直接删除alter table 表名 drop primary key;
  10. #普通索引(INDEX) 唯一索引(UNIQUE) 主键索引(PRIMARY KEY)
  11. alter table 表名称 add Pprimary key (字段名); #添加主键

DML语句

数据库操纵语言
添加数据
插入数据、删除数据、更新数据

1. 插入数据

  1. #一次性插入多行。
  2. insert into user(字段1,字段2..) values(数值1 ‘数值2’..),(数值1 ‘数值2’..)...(数值1 ‘数值2’..);
  3. #插入查询的数据
  4. insert into 要插入的表名(字段1,字段2..) select 字段1,字段2.. from 查询的表;

2. 更新数据

  1. update 表名 set 字段1=‘新数据’; # 更新这个字段所有数据
  2. update 表名 set 字段1=‘新数据’ where 字段2=‘数据’; # 更新这个字段指定的数据

3. 删除数据

  1. truncate table 表名; # 只删除表数据,不删除表结构
  2. select *from 表名 where 字段1=‘’; # 删除指定的列

DCL语句

数据库控制语言
控制用户的访问权限grant、revoke

创建删除用户

  1. create user '用户名' @ '主机名' identifide by '密码'; #创建用户
  2. drop user '用户名'@'主机名'; #删除用户

用户权限

  1. show grants for test; #查询用户权限
  2. create 权限1,权限2 on 数据库名.表名 to '用户名'@'主机名'; #授权
  3. revoke 权限1,权限2 on 数据库.数据表 from '用户'@'IP地址' #撤销权限 - 整个库,使用 on datebase.*; - 整个表:使用 on datebase.table;
  4. FLUSH PRIVILEGES; # 刷新使用户权限生效
  5. 可授权列表:
  6. SELECT:表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
  7. INSERT:表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
  8. DELETE:表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
  9. UPDATE:表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
  10. REFERENCES:表示授予用户可以创建指向特定的数据库中的表外键的权限。
  11. CREATE:表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
  12. ALTER:表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
  13. SHOW VIEW:表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
  14. CREATE ROUTINE:表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
  15. ALTER ROUTINE:表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
  16. INDEX:表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
  17. DROP:表示授予用户可以删除特定数据库中所有表和视图的权限。
  18. CREATE TEMPORARY TABLES:表示授予用户可以在特定数据库中创建临时表的权限。
  19. CREATE VIEW:表示授予用户可以在特定数据库中创建新的视图的权限。
  20. EXECUTE ROUTINE:表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
  21. LOCK TABLES:表示授予用户可以锁定特定数据库的已有数据表的权限。
  22. SHOW DATABASES:表示授权可以使用SHOW DATABASES语句查看所有已有的数据库的定义的权限。
  23. ALLALL PRIVILEGES:表示以上所有权限。

用户密码管理

  1. mysqladmin -uroot -p password 新密码 (不需要加引号); #在shell中修改root密码
  2. set password for '用户名'@'主机名'= password('新密码'); #在数据库中修改普通用户密码
  3. lush privileges; #刷新
  4. validate_password_length=1; #设置密码长度为1个
  5. validate_password_number_count=2; #设置密码数字最少为2个
  6. flush privileges; #刷新
  7. 参数解释:
  8. validate_password_length :#密码最少长度,默认值是8最少是0
  9. validate_password_dictionary_file:#用于配置密码的字典文件,字典文件中存在的密码不得使用。
  10. validate_password_policy #代表的密码策略,默认是MEDIUM
  11. validate_password_number_count :#最少数字字符数,默认1最小是0
  12. validate_password_mixed_case_count :#最少大写和小写字符数(同时有大写和小写),默认为1最少是0
  13. validate_password_special_char_count :#最少特殊字符数,默认1最小是0

DQL语句

数据库查询语言
查询数据 select

1. 简单的查询

  1. select * from 表名 # 查询表内所有内容
  2. select 字段1 字段2 ... from 表名 # 查询指定字段的数据
  3. select distinct 字段名 from 表名; # 清除重复值
  4. select 字段名 1 as 别名, 字段名 2 as 别名... from 表名; #查询结果,赋予字段显示别名

2. 高级查询

  1. 比较运算符查询
  2. - 大于 <小于 <=小于等于 >=大于等于 =等于 <>、!=不等于
  3. 逻辑运算符查询
  4. -- and(&&) 多个条件同时满足 or(||) 多个条件其中一个满足 not(!) 不满足
  5. in 关键字查询
  6. select * from 表名 where id in (1,3,5); # 查询这张表中id字段中包含1,3,5,的行
  7. 模糊查询
  8. like % 的运用
  9. select * from 表名 where name like '福%'; #查询表 name关键字 以福字开头的行
  10. select * from 表名 where name like '%福'; #查询表 name关键字 以福字结尾的行
  11. select * from 表名 where name like '福__'; #查询表 name关键字 查询福字且有三个字的行
  12. 函数查询
  13. select max(字段1) from employee5; # 查询字段1 最大值
  14. max() 最大值
  15. min()最小值
  16. avg()平均值
  17. now() 现在的时间 select now()】

3. 查询结果参与运算

  1. select 列名 1(必须是数值) + 列名 2(必须是数值) from 表名; # 列名2也可修改成固定的数值

4. 多表关联查询

  1. 内连接:
  2. 在做多张表查询时,这些表中应该存在着有关联的两个字段,组合成一条记录。只连接匹配到的行
  3. 例如:只找出有相同部门的员工
  4. select 1表.编号,1表.员工,2表.部门 from 1 , 2 where 1表.编号 = 2表.编号;
  5. 外连接:
  6. 在做多张表查询时,所需要的数据,除了满足关联条件的数据外,还有不满足关联条件的数据。此时需要使用外连接.外连接分为三种
  7. 左外连接:表A left [outer] join B on 关联条件,表A是主表,表B是从表
  8. 右外连接:表A right [outer] join B on 关联条件,表B是主表,表A是从表
  9. 全外连接:表A full [outer] join B on 关联条件,两张表的数据不管满不满足条件,都做显示。

======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆

发表评论

表情:
评论列表 (有 0 条评论,335人围观)

还没有评论,来说两句吧...

相关阅读