第一章 初识MySQL
数据库
第一节 数据库操作
1. 创建数据库的语法
|
|
实例:创建数据库lesson,并指定字符集为GBK
,排序规则为GBK_CHINESE_CI
|
|
2.修改数据库的语法
|
|
实例:修改数据库lesson,并指定字符集为UTF8
,排序规则为UTF8_GENERAL_CI
|
|
3.删除数据库的语法
|
|
实例:删除数据库lesson
|
|
4.查看数据库语法
|
|
5.使用数据库语法
|
|
实例:使用数据库lesson
|
|
第二节 列类型
在MySQL
中,常用列类型主要为数值类型、日期时间类型、字符串类型
1. 数值类型
tinyint |
smallint |
mediumint |
int |
bigint |
float |
double |
decimal |
---|---|---|---|---|---|---|---|
1字节 | 2字节 | 3字节 | 4字节 | 8字节 | 4字节(浮点) | 8字节(浮点) | m字节(浮点) |
注:
decimal(m, d)
为字符串存储的浮点数,其中m表示总位数,d表示保留小数位数
2. 日期时间类型
DATE (日期) |
TIME (时间) |
DATETIME |
TIMESTAMP(时间戳) |
YEAR |
---|---|---|---|---|
YYYY-MM-dd |
HH:mm:ss |
YY-MM-dd HH:mm:ss |
YY-MM-dd HH:mm:ss |
YYYY |
3. 字符串类型
类型 | 说明 | 最大长度 |
---|---|---|
char [(M)] |
固定长字符串,索引快但费空间,0<=M<=255 | M字符 |
varchar [(M)] |
可变字符串,0<=M<=65535 | 变长度 |
text |
文本串 | 2^16^-1字节 |
注:
char(50)
:不论插入值占用多少位空间,在数据库中都会占50个长度。比如"男"
varchar(50)
:最大占用50个长度。比如"男"占用1个
text
:用于存储长文本
4. 列类型修饰属性
类型 | 说明 | 示例 |
---|---|---|
UNSIGNED |
无符号,只能修饰数值类型,表明该列数据不能出现负数 | UNSIGNED INT(4),表示只能为4位大于等于0整数 |
ZEROFILL |
不足的位数使用0 | INT(4) ZEROFILL ,如果给定的值位10,此时只有2位,而该列需要4位,不足的2位由0来填充,最终值为0010 |
NOT NULL |
表示该列类型的值不能为空 | VARCHAR (20) NOT NULL,表示该列不能为空值 |
DEFAULT |
表示设置默认值 | INT(4) DEFAULT 0,表示该列不赋值时默认为0 |
AUTO_INCREMENT |
表示自增长,只能应用于数值列类型,该列类型必须为键,且不能为空 | INT(11) AUTO_INCREMENT NOT NULL PRIMARY KEY。第一次为该列中插入值时为1,第二次为2,以此类推 |
第三节 数据表操作
1. 数据表类型
MySQL
中的数据表类型由许多,如MyISAM
、InnoDB
、HEAP
、BOB
、CSV
等。其中最常用的就是MyISAM
和InnoDB
MyISAM
和InnoDB
的区别
名称 | MyISAM |
InnoDB |
---|---|---|
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约2倍 |
事务:涉及的所有操作是一个整体,要么都执行,要么都不执行。
数据行锁定:一行数据,当一个用户在修改该数据时,可以将该条数据锁定。
注:如何选择数据表的类型?
|
|
2. 创建数据表
|
|
示例:创建学生表,表中有字段学号、姓名、性别、年龄和成绩
|
|
3. 修改数据表
-
修改表名
1
ALTER TABLE 表名 RENAME AS 新表名;
示例:将
student
表名修改为stu
1
ALTER TABLE student RENAME AS stu;
-
增加字段
1
ALTER TABLE 表名 ADD 字段名 列类型(长度) [修饰属性] [键/索引] [注释];
示例:在
stu
中添加字段联系电话(phone),类型为字符串,长度为11,非空1
ALTER TABLE stu ADD phone VARCHAR(11) NOT NULL COMMENT '联系电话';
-
查看表结构
1
DESC 表名; --查看表结构
-
修改字段
1 2 3 4
-- MODIFY 只能修改字段的修饰属性 ALTER TABLE 表名 MODIFY 字段名 列类型(长度) [修饰属性] [键/索引] [注释]; -- CHANGE 可以修改字段的名字以及修饰属性 ALTER TABLE 表名 CHANGE 字段名 新字段名 列类型(长度) [修饰属性] [键/索引] [注释];
示例:将
stu
表中的sex字般的类型设置为VARCHAR
,长度为2,默认值为男,注释为"性别,男,女,其他"1
ALTER TABLE stu MODIFY sex VARCHAR(2) DEFAULT '男' COMMENT '性别:男,女,其他';
示例:将
stu
表中的phone
字段修改为moblie
,属性保持不变1
ALTER TABLE stu CHANGE phone mobile VARCHAR(11) NOT NULL COMMENT '联系电话';
-
删除字段
1
ALTER TABLE 表名 DROP 字段名;
示例:将
stu
表中的mobile
字段删除1
ALTER TABLE stu DROP mobile;
-
删除数据表
1
DROP TABLE [IF EXISTS] 表名;
示例:删除数据表
stu
1
DROP TABLE IF EXISTS stu;
第四节 综合练习
1. 在数据库exercise中创建课程表stu_course
,包含字段课程编号(number),类型为整数,长度为11,是主键,自增长,非空;课程名称(name),类型为字符串,长度为20,非空;学分(score), 类型为浮点数,小数点后面保留2位有效数字,长度为5, 非空
|
|
2. 将课程表重命名为course
|
|
3. 在课程表中添加字段学时(time),类型为整数,长度为3,非空
|
|
4. 修改课程表学分类型为浮点数,小数点后面保留1位有效数字,长度为3,非空
|
|
5. 删除课程表
|
|
6. 删除数据库exercise
|
|