目录
DML(Data Manipulation Language)
SQL
sql指的是一门操作关系型数据库的编程语言,是操作所有关系型数据库的标准
SQL的类别
DDL、DML、DQL和DCL
DDL(Data Definition Language)
数据定义语言,用来操作数据库对象、数据表、数据的每一列
对数据库的操作
--查询所有数据库表
show database;
--创建数据库(创建数据库先判断是否存在,已存在则会报错)
create database if not exists数据库的名称;
--删除数据库(删除数据库先判断是否存在,不存在则会报错)
drop database if exists 数据库的名称;
--使用数据库
use 数据库的名称;
--查看当前使用的数据库
select database();
对表的操作
--查询当前数据库中所有的表
show tables;
--查看表的结构
desc 表名;
--创建表 每一个字段名和数据类型后面需要用,连接
create table 表名(
字段名 数据类型,
字段名 数据类型,
字段名n 数据类型n
);
--删除表 删除表判断表是否存在,存在才可以删除
drop table if exists 表名;
--修改表
alter table 表名 rename to 新的表名;
--添加一列
alter table 表名 add 列名 数据类型;
--修改数据类型
alter table 表名 modify 列名 数据类型;
--修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;
--删除列
alter table 表名 drop 列名;
mysql多种类型,分为3类
数值型、日期型、字符串
数值型:tinyint:一个字节 int:大整数类型,占4个字节 double:浮点类型(总长度,小数点位数)
日期型: date:日期型,只有年月日不包含时间 datetime:混合日期和时间,包含时间
字符串: char:定长字符串,固定长度 varchar:变长字符串
DML(Data Manipulation Language)
数据操作语言,对数据库中表的数据进行增删改的操作
--------------------------插入数据-----------------------------
--给表中指定的列添加数据
insert into 表名(列名1,列名2,…) VALUES(值1,值2,…);
--给全部列添加数据
insert into 表名values(值1,值2,...);
--批量添加
insert into 表名(列名1,列名2...)values(值1,值2...);
insert into 表名 values(值1,值2,...);
------------------------修改表数据-------------------------------
--满足条件的才可以修改,如果不加条件则会改变所有数据
update 表名 set 列名1 = 值1,列名2 = 值2,...where 条件
----------------------删除数据---------------------------------
--删除符合条件的数据
delete from 表名 where 条件
DQL(Data Query Language)
数据查询语言,查询数据库中表的数据
去除重复记录
select distinct 字段列表 from 表名
起别名
select 字段名1 as 新字段名1,新字段名2 as 新字段名2 from 表名
--as也可以省略
select 字段名1 新字段名1,字段名2 新字段名2 from 表名
查询的条件
where和having的区别
执行时机不一样,where是分组之前进行限定条件,不满住where的条件不参与分组,having则是过滤分组之后的结果
where不可以对聚合函数进行判断,having可以
分页查询
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后条件
ORDER BY --desc(降序)和asc(默认升序)
排序字段
LIMIT
分页限定
DCL(Data Control Language)
数据控制语言,可以定义数据库的访问权限和安全级别,及创建用户