04-库表创删改
1. 数据【库】操作
1.1 数据值类型
sql支持多种类型,大致可以分为三类:
数值
、日期/时间
和字符串(字符)
类型。对于我们约束数据的类型有很大的帮助。
1.1.1 数值类型
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
INT/INTEGER |
4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
DOUBLE | 8 字节 | (-1.797E+308,-2.22E-308) | (0,2.22E-308,1.797E+308) | 双精度浮点值 |
DOUBLE(M,D) |
8个字节 M为长度,D小数位数( 全舍不入 ) |
受M和D的约束 DUBLE(5,2) -999.99-999.99 | 受M和D的约束 | 双精度浮点值 |
DECIMAL(M,D) |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2(四舍五入 ) |
依赖于M和D的值,M最大值为65 | 依赖于M和D的值,M最大值为65 | 小数值 |
1.1.2 日期类型
类型 | 大小 | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE |
3 | 1000-01-01 ~ 9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’ ~ ‘838:59:59’ | HH:MM:SS | 时间值 |
YEAR | 1 | 1901 ~ 2155 | YYYY | 年份值 |
DATETIME |
8 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束:第 2147483647 秒 北京时间 2038-1-19 11:14:07 格林尼治时间: 2038年1月19日 凌晨 03:14:07 |
YYYYMMDD HHMMSS | 时间戳 |
1.1.3 字符串类型
类型 | 大小 | 用途 |
---|---|---|
CHAR |
0-255 字符 | 定长字符串 char(10) 10个字符 |
VARCHAR |
0-65535 字节 | 变长字符串 varchar(10) 10个字符【最常用】 |
BLOB(binary large object) | 0-65535字节 | 二进制形式的长文本数据 |
TEXT | 0-65535字节 | 长文本数据 |
- CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
- BINARY 和 VARBINARY 类类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含
字节字符串
而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。 - BLOB是一个二进制大对象,可以
容纳可变数量的数据
。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。 - 有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
1.2 创建库(CREATE)
语法:
CREATE DATABASE 库名
;
1.2.1 创建数据库
1 |
|
1.3 修改库(ALTER)
语法:
ALTER DATABASE 库名 操作
;
1.3.1 修改数据库的字符集
1 |
|
1.4 删除库(DROP)
语法:
DROP DATABASE 库名
1.4.1 删除数据库
1 |
|
2. 数据【表】操作
2.1 创建表(CREATE)
语法:
CREATE TABLE 表名(
列名1 数据类型 [约束],
列名2 数据类型 [约束],
….
列名n 数据类型 [约束]
//最后一列末尾不加逗号
)[charset=utf8]
//可根据需要指定表的字符编码集
2.1.1 创建表
列名 | 数据类型 | 说明 |
---|---|---|
subjectId | INT | 课程编号 |
subjectName | VARCHAR(20) | 课程名称 |
subjectHours | INT | 课程时长 |
1 |
|
- 问题:在往已创建表中新增数据时,可不可以新增两行相同列值得数据? 答案:可行。
- 如果可行,会有什么弊端?
表中的数据不唯一!
2.2 修改表(ALTER)
语法:
ALTER TABLE
表名 操作;
2.2.1 向现有表中添加列
1 |
|
2.2.2 修改表中的列
1 |
|
- 注意:修改表中的某列时,也要
写全列的名字,数据类型,约束
2.2.2 修改表中的列(详细)
1 |
|
2.2.3 删除表中的列
1 |
|
- 注意:删除列时,
每次只能删除一列
2.2.4 修改列名
1 |
|
- 注意:修改列名时,在给定列新名称时,要
指定列的类型和约束
2.2.5 修改表名
1 |
|
2.3 删除表(DROP)
语法:
DROP TABLE
表名;
2.3.1 删除学生表
1 |
|
04-库表创删改
https://janycode.github.io/2017/06/18/05_数据库/01_MySQL/04-库表创删改/