目录
- 1、数据库定义基本语句
- 2.数据库操作SQL语句
- 3.数据库查询语句
- (1)基本查询
- (2)where条件查询
- (3)查询结果排序order by
- (4)聚合函数使用
- (5)查询结果分组处理,配合聚合函数
- (6)子查询处理多表
- 4.几种删除方式的区别
1、数据库定义基本语句
(1)数据库操作
# 创建数据库dbcreate database db# 修改数据库db的属性:数据库名称由db改为db1alter database db rename to db1# 修改数据库db的属性:数据库修改所有者为user1alter database db owner to user1# 删除数据库dbdrop database db
(2)数据表操作
# 创建数据表studentcreate table student(id char(10) primary key,name varchar(255) not null,birthday date null,major varchar(255) null);# 修改数据表:添加新的列agealter table student add age int null;# 修改数据表:删除birthday这一列alter table student drop column birthday;# 修改数据表:修改表名为student1alter table student rename to student1;# 修改数据表:修改列名major为major1alter table student rename column major to major1# 修改数据表:修改指定列的类型alter table student alter column name type varchar(12);# 删除数据表drop table student;
2.数据库操作SQL语句
(1)插入数据
insert into student values ('2017','zm','1999-04-23','计算机'),('2017','wb','1997-08-05','计算机');
(2)更新语句
如果不加where 会更新表中所有数据
update student set birthday='1999-04-09' where name='zm'
(3)删除数据
如果不加where会删除所有行
delete from student where name='zm';
3.数据库查询语句
(1)基本查询
# 查询全部数据select * from student# 查询全部数据,但指定字段展示select id,name from student
(2)where条件查询
# 按照条件查询数据select * from student where major='计算机' and name='zm';# 利用between...and..查询select * from student where birthday between '1999-01-01' and '1999-12-31';# 利用like和通配符 -表示一个字符,%表示多个字符select * from student where name like 'z%';select * from student where name like 'z_';# 利用not like 查询不是z开头的nameselect * from student where name not like 'z%';
(3)查询结果排序order by
# asc 升序,默认不写select * from student order by birthday asc;# desc 降序select * from student order by birthday desc;
(4)聚合函数使用
# AVG-平均值 MIN-最小值 MAX-最大值 SUM-求和 COUNT-结果集行数计数select COUNT(*) as '人数' from student;# 去重:有几个专业select COUNT(DISTINCT major) as '专业数' from student;
(5)查询结果分组处理,配合聚合函数
# 查询每个专业的人数select major, count(id) from studentgroup by major# 使用having和where指定查询条件,同时使用时,先用where过滤数据集,再使用having限定分组# 查询女生所在的专业中,女生人数超过3人的专业select major,count(*) from studentwhere sex='女'group by majorhaving count(*)>3
(6)子查询处理多表
就是再select语句的where中嵌套一层或多次select语句
select teacher_id,name from teacherwhere collegeID IN(select collegeID from collegewhere college_name='电智学院'order by teacher_id)
4.几种删除方式的区别
(1)drop:用来删除数据库和数据表,删除结构和数据,不可回滚
(2)delete:用来删除表中的数据记录,一行一行删,插入事物,可以回滚。如果没有where条件,就删除表中全部记录
(3)truncate:删除表(直接删除整张表,然后建个新表),不支持事务。不可回滚,