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(字段名): 返回指定字段所有值的平均值