目录
一、SQL 分类
二、数据库操作
1、创建数据库
2、查看数据库
3、删除数据库
4、切换数据库
三、表操作
1、创建表
2、主键约束
3、查看表
4、删除表
5、修改表结构
6、插入表数据
7、更新表数据
8、删除表数据
四、查询语句
1、基本查询
2、排序查询
3、聚合查询
4、分组查询
常用数据类型
分类 | 类型名称 | 说明 |
整数类型 | tinyInt | 很小的整数 |
smallint | 小的整数 | |
mediumint | 中等大小的整数 | |
int(integer) | 普通大小的整数 | |
小数类型 | float | 单精度浮点数 |
double | 双精度浮点数 | |
decimal(m,d) | 压缩严格的定点数 | |
日期类型 | year | YYYY 1901~2155 |
time | HH:MM:SS -838:59:59~838:59:59 | |
date | YYYY-MM-DD 1000-01-01~9999-12-3 | |
datetime | YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 | |
timestamp | YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC |
create database 数据库名; #默认编码创建
create database 数据库名 character set 字符集; #指定编码创建
show databases; #查看所有数据库
show database 数据库名; #查看某个数据库定义的信息
select database(); #查看正在使用的数据库
drop database 数据库名; #删除指定数据库
use 数据库名; #切换指定数据库
在创建表之前,先要指定在哪个数据库中创建表,即先使用数据库,使用:use 数据库名;来指定
#创建表
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
eg:
#创建学生表
CREATE TABLE S(
Sno char(9) primary key, #主键约束
Sname varchar(8) not null,
Ssex char(2)
);
主键是用于标识当前记录的字段,是飞空的、唯一的,在开发过程中,主键是不具备任何含义,只是用于标识当前记录,创建主键有两种方法,一种是在创建表时,在字段后面加上 primary key;另一种是在创建表时,在表创建的最后来指定主键。
create table tablename(
id int primary key, #字段后面加上主键约束
....
)
create table tablename(
id int,
....
primary key(id) #指定主键
)
alter table tablename drop primary key;
show tables;
desc 表名;
drop table 表名;
eg:为学生表 S 添加新的字段 Sage smallint
alter table S add Sage smallint;
eg:对学生表的 Sname 以及其长度和约束进行修改
alter table S modify Sname varchar(50) not null;
eg:对学生表的 Sname 列名修改为 Name varchar(20)
alter table S change Sname Name varchar(20);
eg:对学生表的 Sage 进行删除
alter table S drop Sage;
eg:修改表名 S 为 Student
rename table S to Student;
eg:将 Student 表编码表改为 gbk
alter table Student character set gbk;
语法:
eg:往学生表中插入数据
insert into Student(Sno,Sname,Ssex) values('15450132','一颗星','男');
insert into Student(Sno,Sname,Ssex) values('15450133','两颗星','男');
insert into Student values('15450134','三颗星','男');
insert into Student values('15450135','四颗星','男');
注意:
语法:
eg:修改 Student 学生表中的 Sname 中的值
update Student set Sname='星星';
update Student set Sname='派大星' where Sno='15450132';
注意:
语法:
eg:删除表中数据
delete from Student where Sname='派大星'; #删除一条数据
truncate table Student; #删除表中所有数据
delete from Student; #删除表中所有数据
select Sno,Sname from Student;
select * from Student;
select distinct Sname from Student;
别名可以给表中的字段,表设置别名,在查询语句复杂的时候,使用别名极大的简便操作
使用 order by 进行升序降序排序
select * from Student order by Sage asc; #升序
select * from Student order by Sage desc; #降序
聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值,聚合函数会忽略空值,列出五个常用的聚合函数。
#查询学生表中有多少条记录
select count(*) from Student;
#查询学生表中年龄大于15岁的有多少条记录
select count(*) from Student where Sage>15;
#查询学生表中所有年龄的总和
select sum(Sage) from Student;
#查询学生表中最大和最小的年龄
select max(Sage),min(Sage) from Student;
#查询学生表中所有年龄的平均值
select avg(Sage) from Student;
分组查询是指使用group by字句对查询信息进行分组,格式如下:
eg:对学生表分姓名统计,求出每个学生对应姓名的年龄
select Sname,sum(Sage) from Student group by Sname;