SQL语句分类

DDL:数据库定义语言,用来定义数据库对象(数据库,表,列)
DML:数据库操作语言,包括对数据库中的数据增删改操作
DCL:数据库控制语言,数据库控制语言,包括用户权限,安全级别等等
DQL:数据库查询语言,包括对数据库表中数据的查询操作 */ – DDL

– DDL
– 查询root用户下所有的数据库

show databases;

– 创建数据库 [if not exists]

create database if not exists b505;

– 使用数据库

use b505;

– 删除数据库

drop database if exists b505;

– 修改数据库编码格式

alter database b505 character set utf8;

– 查看数据库编码格式

show variables like '%character%';
show variables like '%character_set_database%';

– 常用数据类型

1、数值型:整型和浮点型

int 整型
double(M,D):浮点型,M表示有效数字的最大位数,D表示小数位数,
decimal(M,D):泛型型,一般只用在钱方面 2、字符串类型

2、字符串类型
char(n):固定长度字符串类型,n表示最长的字符个数
varchar(n):可变长字符类型
text:长文本类型
blob:字节类型,常用于存储图片,音频等字节文件

3、日期类型
date:日期类型,格式:yyyy-MM-dd
time:时间类型,格式:HH:mm:ss
datetime:日期时间类型,格式:yyyy-MM-dd HH:mm:ss
timestamp:时间戳类型,会自动更新时间

–DDL:

查看当前数据库中所有的表

show tables;

查看表的创建语句

show create table t_test1;

查看表结构

desc t_test1;

删除表

ddrop table t_test1

-创建表

create table student(
id int primary key auto_increment, 
sname varchar(50),
sex varchar(10)
);

查看表结构

desc student;

–向表中添加字段

alter table student add column age int,

表结构:字段和字段类型
修改表结构格式:alter table 表名

项目表中添加字段

alter table student add column age int;

修改表中的字段名

alter table studenr change sex gender verchar(10);

删除字段名

alter table student drop age;

修改表名

alter table stadent rename to stu;

–DML

插入数据
1,向表中所的字段插入数据
insert into 表名 values(按表中字段的数据和类型来设置值);
2,向表中指定的字段插入数据
insert into 表名(指定添加的字段名[字段1,字段2] values(字段值1,字段值2));

修改数据
1,修改指定字段的字段值
update 表名 set 字段1= 新字段1,字段2= 新字段.。。。。where 条件;
2,修改表中所有的数据
update 表名 set 字段1= 新字段1,字段2= 新字段;

删除数据
1,将表中数据全部删除
delete from 表名;
2,根据条件删除数据
delete from 表名 where 条件;

–DQL 数据库查询语言

基础查询

查询所有列

select * from emp

查询指定列

select empno,ename,sal from emp

where 条件关键字
and :必循满足所有的条件
or 或者,只要满足其中一个条件

in 包含
not in 不包含
in中所包含的值为一个set集合,因此值不能重复,所以只能放id
is null 表示为空记录
is not null 表示不为空记录

between…and… 表示两者之间

as命名别名(字段,表),as是可以省略的
ifnull(m,0):如果m为null时,那么使用0来代替

查询性别为女,年龄小于五十

select * from stu where gender = 'female' and age <50;

查询年龄为空的纪录

select * from stu where age is null;

查询月薪和工资之和

SELECT e.*,sal+IFNULL(comm,0) AS 工资总和 FROM emp AS e;

模糊查询

关键字 like
_表示一个字符,字符可以任意字符
% 表示0到n的任意字符,

– 查询姓名中第二个字母为i的学生记录

SELECT * FROM stu WHERE sname LIKE '_i%';

排序查询

order by 字段名 [asc] 升序排序
order by 字段名 desc 降序排序
– 查询所有员工,按照月薪进行降序排序,如果月薪相同按照编号升序排序

降序排序时,我们不需要去判断,数据库会自动识别

SELECT * FROM emp ORDER BY sal DESC,empno ASC;

聚合函数

count(字段名) : 返回非null值的记录条数
sum(字段名):返回指定字段所有值的和
max(字段名):返回指定字段所有 值的最大值
min(字段名): 返回指定字段所有值的最小值
avg(字段名): 返回指定字段所有值的平均值