mysql整理3-SQL的分类(DDL,DML,DCL,DDL)以及详解

目录

1)什么是sql
2)sql分类
3)DDL:数据定义语言
4)DML: 数据操纵语言
5)DCL: 数据库控制语言(了解)
6)TCL:事务控制语言

1)什么是sql

structure query language:结构化查询语言。关系型数据库中进行操作标准语言。编程语言。
对大小写不敏感;结尾需要使用;。

2)sql分类

DDL: 数据定义语言(数据库对象的操作(结构))
create / alter /drop(数据库和表)
DML: 数据操纵语言(数据操作 增删改查)
insert / update /delete /select

Select 字段|表达式 from 表|视图|结果集 
Where 条件
Group by 分组
Having 分组之后进行检索
Order by 排序
Limit 限制结果

DCL: 数据控制语言(授权 取消授权)
grant / revoke
TCL: 事务控制语言
commit / rollback

3)ddl:数据定义语言

ddl主要是对数据库和数据库表的create,drop,alter等操作。

A.数据库操作

#创建数据库
create database if not exists bd1807;
#销毁数据库
drop database if exists bd1807;

B.数据库表操作(table)

数据库表(表):采用二维表格形式管理数据。

#创建表
create table userinfo(
uid int,
uname varchar(20),
gender varchar(10)
);

#表结构修改(1.添加字段add 2.修改字段名称,类型修改,位置(change/modify) 3.销毁字段 drop)

#追加
alter table userinfo add qq varchar(20);
#添加到首位
alter table userinfo add wechat varchar(20) first;
#添加到uid之后
alter table userinfo add renren varchar(20) after uid;

#删除字段
alter table userinfo drop renren;
alter table userinfo drop wechat;

#字段修改
#修改字段名称 qq -> t_qq

#modify 字段名称 类型 约束
#change 旧字段  新字段名称 类型 约束

alter table userinfo change qq t_qq varchar(20);
#修改字段类型
alter table userinfo change t_qq t_qq varchar(10);
alter table userinfo modify t_qq varchar(20);
#修改字段位置
alter table userinfo modify t_qq varchar(20) after birthday;

#表名称修改
rename table userinfo to user;

#表销毁
drop table user;

#清空表
TRUNCATE table userinfo;

4)DML(数据操纵语言)

1)添加数据(insert)

Insert into tname[(字段名称…)] values(值…);
#添加数据classroom
#给所有字段添加值,和表中字段顺序一致
insert into classroom values(3,‘bd1809’);

#给cname字段添加值,和指定字段的顺序必须一致
insert into classroom(des,cname) values(‘des’,‘bd1810’);

#添加三条记录(批量插入)
insert into classroom(cname,des) values(‘bd1811’,‘des’),
(‘bd1812’,‘des’),
(‘bd1901’,‘des’);

#将classroom的值整体复制到classroom1
insert into classroom1 select * from classroom;

2)删除数据 delete

delete from tname [where 条件]

truncate和delete的区别?
	truncate:清空   文件级别清空  自增重置
	delete:删除  只修改数据  逐行删除  自增不会重置
3)修改数据 update

update tname set 字段=新值,… [where 条件]
update classroom set des = ‘des’ where cid = 2;

4)查询数据 select
Select 字段|表达式 from 表|视图|结果集 
	Where 条件
	Group by 分组
	Having 分组之后进行检索
	Order by 排序
	Limit 限制结果

#查询所有信息

 select * from emp;

#查询所有员工的姓名和工资

select ename,sal from emp;

#查询工资>2000的员工信息

select * from emp where sal **>** 2000;

#查询工资在1000到2000之间的员工信息(范围查询)

select * from emp where sal **>=** 1000 and sal <=2000;
select * from emp where sal **between 1000 and 2000;** 

#查询编号(empno)为7521,7369,7788的员工信息。(集合查询)

select * from emp where empno = 7521 or empno = 7369 or empno = 7788;
select * from emp where empno in (7521,7369,7788);

#别名(简化 做解释说明) [as] 别名
#字段 表达式 结果集 表 都可以起别名

 select ename,sal*1.05 nsal from emp;

#查询所有职位信息 去重

select distinct job from emp;

#查询在10号部门工资最高的员工信息
#1.10号部门所有员工

	select * from emp where deptno =10;

#2.排序,取第一个

	select * from emp where deptno =10 order by sal desc limit 0,1;

#排序 order by 排序字段 默认升序排序 asc | desc
#根据员工工资降序排序,工资一致的按照员工编号的降序排序。

select * from emp order by sal desc,empno desc;

#限制结果查询 limit 下标,长度 (仅适用于mysql,分页查询)

 select * from emp limit 0,5;

#查询所有有奖金的员工信息

 select * from emp where comm is not null;

#模糊查询 like %:0到多个任意字符 _:1个字符
#查询名字以s打头的员工信息

 	select * from emp where ename like 's%';

#包含

 	select * from emp where ename like '%s%';

#第二个字符为L的所有员工信息

 	select * from emp where ename like '_l%';

5)DCL(数据库控制语言)(了解)

Data Control Language 数据库控制语言
grant,deny,revoke等,只有管理员才有这样的权限

创建用户

mysql>CREATE USER ‘USERNAME’@‘HOST’ IDENTIFIED BY ‘PASSWORD’

删除用户

mysql>DROP USER ‘USERNAME’@'HOST‘ 支持通配符

_:任意单个字符
%:任意多个字符
授权

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>CREATE USER 'lujunyi'@'%' IDENTIFIED BY '123456';
mysql>SHOW GRANTS FOR 'lujunyi'@'%';
mysql>GRANT ALL PRIVILEGES ON testdb.* TO 'lujunyi'@'%';

6)TCL:事务控制语言

事务整理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值