MySql语法,分为四类,分别是DDL,DML,DQL,DCL四类,区别鉴于下表
解释 | 命令 | |
DDL (数据定义语言) | 定义管理数据对象,如数据库、数据表等 | create、drop、alter |
DML (数据操作语言) | 操作数据库对象中的数据 | insert、update、delete |
DQL (数据查询语言) | 查寻数据库数据 | select |
DCL (数据控制语言) | 管理数据库语言,包括管理权限及数据更改 | grant、commit、rollback |
我们今天只看DDL、DML、DQL三种基本语法
DDL语句:
create:
-- 建库
create database 库名;-- 建表
create table 表名(
字段名1 地段类型,
字段名2 地段类型,
...
字段名n 地段类型
);
drop:
-- 删库
drop database 库名;-- 删表
drop table 表名;
alter:
-- 修改表名
alter table 旧表名 rename as 新表名;-- 修改字段类型
alter table 表名 modify 字段名 类型;-- 修改字段名、类型
alter table 表名 change 旧字段名 新字段名 类型;-- 删除字段
alter table 表名 drop 字段名;-- 增加字段
alter table 表名 add 字段名 类型;
查看库、表
-- 进入库
use 库名;
-- 查看所有的库
show databases;
-- 查看所有的表
show tables;
-- 查询表结构
desc 表名;
show create table;
DML语句:
insert:新增数据
-- 新增一条数据
insert into 表名(字段名1,字段名2...字段名n) values (值1,值2...值n),(值1,值2...值n),(值1,值2...值n)....
insert into 表名 values (全字段所对应的值);
update:修改数据
-- 修改数据
update 表名 set 字段名=值,字段名=值... where 条件;
delete:删除数据
-- 删除数据,删除数据,不重置自增计数器
delete from 表名 where 条件;
delete from 表名;
-- 清空表、删除数据,重置自增计数器
truncate table 表名;
DQL语句:查询
select:查询
-- 查询表内所有数据
select * from 表名;
-- 查寻列出的字段
select 字段名1,字段名2...字段名n from 表名;
-- 起别名
select 字段名 as 别名
-- 去掉查询结果中重复的
select distinct 字段1 ,字段名2...字段名n from 表名;
带条件查询
select * from 表名;
-- 模糊查询
-- 前后模糊
select * from 表名 where 字段名 like '%条件%';
-- 前模糊
select * from 表名 where 字段名 like '%条件';
-- 后模糊
select * from 表名 where 字段名 like '条件%';
-- in关键字(查询的字段的值,至少与括号中的一个值相同)
select * from 表名 where 字段名 in (值1,值2...值n);
-- null查询(null做判断,不能用'=',要用'is')
select * from 表名 where 字段名 is null | is not null;
-- 分组查询
select * from 表名 group by 字段名 having 条件;
-- 排序(desc降序,asc升序,默认为升序)
select * from 表名 order by 字段名 desc|asc,字段名 desc|asc;
表联查
-- 等值联查
select * from 表1,表2 where 表1.字段名 = 表2.字段名;
--内联查询
select * from 表1 inner join 表2 on 表1.字段名 = 表2.字段名;
-- 外联查询
-- left join左外联
-- right join右外联
select * from 表1 left|right join 表2 on 表1.字段名 = 表2.字段名;
-- 链接查询
-- union 去重
-- union all 不去重
select * from 表名1;
union | union all
select * from 表名2;
-- where子查询
select * from A where a = (select a from B);
-- from子查询
select * from A inner join (select * from B)b on A.字段1 = b.字段1;
以上就是我对DDL,DML,DQL浅浅的理解,希望能帮助到和我一样刚接触数据库的萌新们