数据库最基础命令的大集合,四类分别有DDL、DCL、DQL、DML,让我给你解释一下吧

一、说一下它们分别是什么

DDL    Data Definition Language
数据定义语言,用来定义数据库对象(数据库,表,字段)
DML    Data Manipulation Language
数据操作语言,用来对数据库表中的数据进行增删改
DQL    Data Query Language
数据查询语言,用来查询数据库中表的记录
DCL    Data Control Language
数据控制语言,用来创建数据库用户、控制数据库的访问权限

二、逐步介绍一下

1.DDL操作数据库表,表中字段的

使用的关键字:create、 alter、 drop

DDL -数据库操作
show database;展现数据库;
create database 数据库名;
use 数据库名;
select datdabase();查询当前数据库;
drop database 数据库名;

DDL-表操作
show tables;
create table 表名(字段 字段类型 ,字段 字段类型);
desc 表名;
show create table 表名;
alter table 表名 add/modify/change/drop/rename to
drop table 表名;


1.1操作数据库
    创建:
Create database 数据库名 字符集 排列规则;
Create database mydb1;
Create database mydb2 character set gbk;

    查询:
查看当前数据库服务器中的所有数据库:
Show databases;
查询当前数据库:
select database();
查看前面创建的mydb2数据库的定义信息:
Show  create  database mydb2;


    修改:
查看服务器中的数据库,并把mydb2的字符集修改为utf8:
 alter database 数据库 character set 字符集;

    删除:
Drop database 数据库;

    切换使用:
Use 数据库;

1.2操作数据表
    创建表:
CREATE TABLE(create table)表名(
字段1字段1类型[ COMMENT(comment)字段1注释],
字段n字段n类型[COMMENT字段n注释]    (最后一个没逗号)
) [ comment表注释];

查看数据库中的所有表(操作数据库):
show tables;
查看表的字段信息(操作表):
desc 表名;
查看表中的创建细节(字段属性没数字的):
show create table 表;

    添加:
alter table 表名 add 字段名  列类型[属性](增加列)
alter table 表名 add   primary key  (`id`);(增加主键)
alter table 表名 add fk_student7_score2 foreign key (sid) references student7(sid);(增加外键)

    修改:
修改字段数据类型:
alter table 表名 modify 字段名 列类型[属性]
修改字段名和字段类型:
alter table 表名 change 旧字段名 新字段名 列类型[属性]
修改字段数据类型(列长度?):
alter table 表名 modify column 字段名 类型[属性];
修改表名:
alter table 旧表名 rename as(to) 新表名(或如下)
rename table 旧表名 to 新表名;
修改表编码(字符集):
alter table 表名 character set 编码;

    删除(选择列名):
alter table 表名 drop 列名;(一次删一列)
drop if exists table 表名;(删表)

数据字段属性:
unsigned :无符号的,声明不允许负数
zerofill:不足位数用0填充
auto_increment:自动增长
null 和not null:默认null
defaule:默认的

 

2.DML(数据操作语言),用来对数据库中的数据进行增删改
--insert 添加,插入
--update 更新,修改
--delete 删除

insert命令:
insert into 表名(字段1,字段2)
values('值1','值2');可同时插入多条数据,values后用英文逗号隔开
注意:插入时,
1.字段顺序要一一对应
2.字符串和日期数据应该包含在引号中
3.插入数据的大小,应该字段的规定范围内

修改数据
update命令:
update 表名 set 修改的字段=修改的值  
[where 字段(约束字段)]
注意:where 条件可有可无,如果没有则会修改整张表的所有数据


delete 命令:
delete from 表名 [where 条件]
注意:
1.筛选条件可有可无,如不指定则删除该表的所有列数据
2.delete 语句不能删除某一个字段的值(可以使用update,set设置为null)
区别与:truncate命令,用于完全清空表数据,但表结构,索引,约束等不变
truncate  [table] table_name
相同:
都能删除数据、不删除表结构,但truncate 速度更快
不同:
使用truncate table重新设置AUTO_INCREMENT计数器
使用truncate table不会对事务有影响

 

3. DQL(数据查询语言)用来查询数据库中表的记录-重点
关键字:select
查询返回的结果是一张虚拟表
语法--编写顺序:
select  列  from  表名;
    【select--->from--->where--->group by --->having-->order by --->limit】
执行顺序:

【from-->where-->group by-->having-->select-->order by-->limit】

1.基础查询:

1.1查询所有列:
select * from 表名;
查询指定列, 
select 字段1,字段2 from 表名;

1.2设置别名 as

1.3去除重复记录distinct
select distinct 字段列表 from 表名;

2.条件查询:
条件查询就是在查询时给出WHERE子句,在WHERE子句中可以使用如下运算符及关键字:
    比较运算符:
    =、!=、<>、<、<=、>、>=;
    BETWEEN…AND;在某个范围之内(含最小最大值)
    IN(....);在in之后的列表的值的,多选一
    IS NULL;是null
    IS NOT NULL;不是null
    逻辑运算符:
    AND;并且,多个条件同时成立
    OR;或者,多个条件任意一个成立
    NOT;非,不是

3.模糊查询:
当想查询姓名中包含a字母的学生时就需要使用模糊查询了。模糊查询需要使用关键字LIKE。
通配符: 
_ 任意一个字母
  %:任意0~n个字母
 
4.字段控制查询:

4.1去除重复记录(两行或以上记录中数据相同)使用distinct
select distinct 字段 from  表名;

4.2 NULL 转换 0的函数 ifnull
select * ,sal+ifnull(comm,0) from 表名;

4.3起别名
用as 可以省略

5.排序
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
order by asc-默认(desc)升/降
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

6.聚合函数
聚合函数是:将一列数据作为一个整体做纵向运算:
    COUNT():统计指定列不为NULL的记录行数;
    MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
    MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
    AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

7.分组查询
group by  分组字段名
凡和聚合函数同时出现的列名,则一定要写在group by 之后

8.having 子句
注:having与where的区别:
1).执行时机不同:
having是在分组后对数据进行过滤.
where是在分组前对数据进行过滤
        
2).判断条件不同
having后面可以使用分组函数(统计函数)
where后面不可以使用分组函数。
WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

8.分页查询:limit
select 字段列表 from 表名 limit 起始索引,查询记录数;
LIMIT用来限定查询结果的起始行,以及总行数
8.1查询5行记录,起始行从0开始
SELECT * FROM emp LIMIT 0, 5;

注意:
1.起始索引从0开始,起始索引 = (查询页码-1)*每页显示记录数
2.分页查询是数据库方言,不同的数据库有不同的实现,MySQL中是limit
3.如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

 4.DCL    Data Control Language
数据控制语言,用来创建数据库用户、控制数据库的访问权限

DCL-管理用户
1.查询用户
use mysql;
select * from 用户名(user);

2.创建用户
create user '用户名'@'主机名' identifled by '密码';

3.修改用户密码
alter user '用户名'@'主机名' identifled with 加密方式(mysql_native_password) by '新密码';

4.删除用户
drop user  '用户名'@'主机名' ;

注意:
主机名可以使用%通配
这类SQL开发人员操作的比较少,主要是DBA数据库管理员使用

DCL-权限控制
1.所有权限:ALL,ALL privileges
2.查询数据:select  
3.插入数据:insert 
4.修改数据:update
5.修改表: alter
6.删除数据库/表/视图:drop
7.创建数据库/表:create

DCL-权限控制,操作代码
1.查询权限: show grants for  '用户名'@'主机名';
2.授予权限: grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
3.撤销权限: revoke 权限列表 on 数据库.表名 from '用户名'@'主机名';

注意;
1.多个权限之间,使用逗号分隔
2.授权时,数据库名和表名可以使用 * 进行通配,代表所有。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值