数据库基础语句总结

数据库的增删改查
创建一个day16的数据库(默认字符集)
create database day16;

	创建一个day16_2的数据库,指定字符集为gbk 
	create database day16_2 character set gbk;

	查看所有的数据库
	show create database 数据库名;
	
	删除数据库
	drop database 数据库名;
	
	修改数据库
	alter database 数据库名 character set 字符集;

其他操作
使用该数据库
use 数据库名;

	查看正在使用的数据库
	select database();

数据库表的增删改查
创建数据库表
create table 表名(
列名 类型 [约束],
列名 类型 [约束]

);
primary key 主键
unique 唯一
not null 非空
auto_increment 自动增长,必须是设置了primary key之后,才可以使用auto_increment

	查看所有的表
	show table;
	查看表的定义结构
	desc 表名;
	
	修改表
	增加一列;alter table 表名 add 字段名 类型 约束;
	- 修改列的类型约束; alter table 表名 modify 字段 类型 约束 ;
	- 修改列的名称,类型,约束;alter table 表名 change 旧列 新列 类型 约束;
	- 删除一列; alter table 表名 drop 列名;
	- 修改表名 ; rename table 旧表名 to 新表名;
	
	删除表
	drop table 表名;

数据库表记录的增删改查
插入记录:
方式一: 插入指定列, 如果没有把这个列进行列出来, 以null进行自动赋值了.
insert into 表名(列,列…) values(值,值…);
方式二: 插入所有的列,如果哪列不想插入值,则需要赋值为null
insert into 表名 values(值,值…);

更新数据
	update 表名 set 列=值,列=值[where 条件];
	 
删除数据
delete from 表名 [where 条件];
truncate
truncate table 表;
把表直接DROP掉,然后再创建一个同样的新表。
删除的数据不能找回。执行速度比DELETE快。

单表查询
select * form 表
查询特定列
select 列名,列名,列名... from 表
去重查询
select distinct 字段名 from 表名;//要数据一模一样才能去重
 distinct前面不能先出现列名
 
 别名查询
 select 列名 as 别名 ,列名  from 表   //列别名  as可以不写
 
 运算查询(+,-,*,/等)
 select pname ,price+10 as price from product;
 
 条件查询
 between...and...  区间查询
 eg: where price between  1000 and 3000  相当于 1000<=price<=3000 
 
 in(值,值..)
 select * from t_product where id in(1,3,5,7)
 
 like 模糊查询    一般和_或者%一起使用(难点)
	- _ 占一位
	- % 占0或者n位
	name like '张%'  --查询姓张的用户, 名字的字数没有限制
	name like '张_'  --查询姓张的用户 并且名字是两个的字的

and  多条件同时满足
where 条件1 and 条件2 and 条件3

or  任意条件满足
where 条件1 or 条件2 or 条件3

排序查询
单列排序
SELECT 字段名 FROM 表名 [WHERE 条件] ORDER BY 字段名 [ASC|DESC]; //ASC: 升序,默认值; DESC: 降序
eg:以分数降序查询所有的学生
SELECT * FROM student ORDER BY score DESC

组合排序
 同时对多个字段进行排序,如果第1个字段相等,则按第2个字段排序,依次类推
 SELECT 字段名 FROM 表名 WHERE 字段=值 ORDER BY 字段名1 [ASC|DESC], 字段名2 [ASC|DESC];
 eg:以分数降序查询所有的学生, 如果分数一致,再以age降序
 SELECT * FROM student ORDER BY score DESC, age DESC

聚合函数
SELECT 聚合函数(列名) FROM 表名 [where 条件];
- max() 最大值
- min() 最小值
- sum() 求和
- avg() 平均值
- count() 统计数量
注意: 聚合函数会忽略空值NULL,
聚合函数之前不能加任何字段名,除非该字段名是用于分组的字段
聚合函数不能使用在where条件中

分组查询
SELECT 字段1,字段2… FROM 表名 [where 条件] GROUP BY 列 [HAVING 条件];

where和having的区别【面试】
where: 1)对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,即先过滤再分组。2) where后面不可以使用聚合函数
having: 1) having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,即先分组再过滤。2) having后面可以使用聚合函数

分页查询
select … from … limit a ,b.
a:跳过多少条数据 【a=(当前页码-1)*b】
b: 一页查询的数量【固定的,自定义的】

发布了10 篇原创文章 · 获赞 0 · 访问量 180

猜你喜欢

转载自blog.csdn.net/zhai314341197/article/details/104757905