1.SQL通用语法与分类
(1)通用语法
(2)分类
2.DDL
2.1数据库操作
show DATABASES;
#查询所有数据库
select DATABASE();
#查询当前数据库
create DATABASE 数据库名称 [default charest 字符集] [collate 排列规则];
#default charest 字符集 是用来指定所创建的数据库使用的字符集的
drop DATABASE 数据库名称;
#删除数据库
use 数据库名称;
#使用指定数据库
2.2表操作
表操作是在数据库内进行的,也就是使用 use 数据库名称;进入数据库后使用的
2.2.1表的查询
show TABLES;
#查询当前数据库所有表
desc 表名;
查询表结构
show create table 表名;
查询指定表的建表语句
2.2.2表的创建
2.2.2.1表的数据类型
数据库中表的数据类型大致可分为3类:数值类型、字符串类型、日期时间类型
(1)数值类型
*整数类型
类型 | 大小 | 有符号范围 | 无符号范围 |
迷你整型: tinyint | 1个字节 | (-2^7 ,2^7-1) | (0,2^8-1) |
短整型: smallint | 2个字节 | (-2^15 ,2^15-1) | (0,2^16-1) |
中整型: mediumint | 3个字节 | (-2^23 ,2^23-1) | (0,2^24-1) |
标准整型: int | 4个字节 | (-2^31 ,2^31-1) | (0,2^32-1) |
大整型: bigint | 8个字节 | (-2^63 ,2^63-1) | (0,2^64-1) |
有符号代表有负数,是默认类型;无符号代表纯正数,需要加unsigned来标识
*小数类型
类型 | 大小 | 有效数字 | 默认范围(非指定) | 指定方法 | 数据规范 |
单精度浮点:float | 4个字节 | 6-7位 | 整数部分不超过最大值,小数部分保留2位 | float/double(总长度,小数部分长度) | 超过有效数字范围会四舍五入 |
双精度浮点:double | 8个字节 | 14-15位 | |||
定点型:decimal | 数据越大占用的存储空间越大 | 65位 | 10位有效整数,0位小数 | decimal(有效数位,小数部分数位) | 整数部分超出报错 小数部分超出四舍五入 |
有效数字:从第一个非零的数字算起的所有数字。1.24和0.00124的有效数字都是3位
decimal(5,3)就可以设定一个23.123这样的总体有效数字5位,小数位3位的数字
(2)字符串类型
类型 | 大小 | 描述 |
char | 0-255字符 | 定长字符串 |
varchar | 0-65535字符 | 变长字符串 |
blob(基本不用) | 二进制数据(音频视频等) | |
text | 0到2 ^ 16 - 1个字符 | 文本数据 |
*在效率上来说char比varchar更好,但是char会占据固定的存储空间,而varchar会根据存储内容调整占据的空间。比如char(10)一定会占据10个字符的空间,而varchar(10)只是限定数据不超过10个字符
*字符串也是可以包含数字的
*文本text还有其他大小不同的类型
迷你文本tinytext | 不超过2 ^ 8 -1 个字符 |
普通文本text | 不超过 2 ^ 16 - 1 个字符 |
中型文本mediumtext | 不超过 2 ^ 24 - 1 个字符 |
长文本longtext | 不超过 2 ^ 32 - 1 个字符 |
(3)时间类型
类型 | 大小 | 可表示范围与格式 | 描述 |
date | 3个字节 | 1000-01-01到9999-12-31 | 日期 |
time | 3个字节 | -838:59:59到838:59:59 | 时间 |
datetime | 8个字节 | 1000-01-01 00:00:00到9999-12-31 23:59:59 | 日期和时间 |
year | 1个字节 | 1901到2155 | 年份 |
timestamp | 4个字节 | 1970-01-01 00:00:01到2038-01-19 03:14:07 | 日期和时间,时间戳 |
2.2.2.2创建语句
create table 表名(
字段1 类型,
字段2 类型,
字段3 类型,
......
字段n 类型
);
#除了最后一段,其他字段末尾都要以英文逗号隔开
create table jjj(
age int unsigned,
#在类型名后加上unsigned,可以限制它为非负
number int
);
2.2.3表的修改
(1)添加与删除字段
alter table 表名 add 字段名 类型;
#添加字段
alter table 表名 drop 字段名;
#删除字段
(2)修改字段及类型
alter table 表名 modify 字段名 新数据类型(长度);
#修改数据类型
alter table 表名 change 旧字段名 新字段名 类型(长度);
#修改字段名、数据类型
(3)修改表名
alter table 表名 rename to 新表名;
(4)删除表
drop table 表名;
#删除表
truncate table 表名;
#清空表内数据,但保留表