MySQL语法使用(一)
写在最前面:MySQL对字母大小写不敏感,因此不必在意大小写
数据库管理
创建数据库
在 MySQL 中,可以使用 CREATE DATABASE 语句创建数据库,语法格式如下:1
2
3
4//通常情况下只写第一句即可
CREATE DATABASE [IF NOT EXISTS] db_name
[[DEFAULT] CHARACTER SET <字符集名>]
[[DEFAULT] COLLATE <校对规则名>];
[ ]
中的内容是可选的。语法说明如下:
db_name
创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,不能以数字开头,尽量要有实际意义。
IF NOT EXISTS
在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
[DEFAULT] CHARACTER SET
指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集。
[DEFAULT] COLLATE
指定字符集的默认校对规则。
例:创建名为test的数据库
CREATE DATABASE test;
查看数据库
1 | SHOW CREATE DATABASE db_name; |
例:查看名为test的数据库
SHOW CREATE DATABASE test;
修改数据库
1 | ALTER DATABASE|SCHEMA db_name |
例:修改名为test的数据库
ALTER DATABASE test
DEFAULT CHARACTER SET gbk
DEFAULT COLLATE gbk_chinese_ci;
删除数据库
1 | DROP DATABASE [IF EXISTS] db_name; |
例:删除名为test的数据库
DROP DATABASE test;
数据库表的管理
创建表
1 | CREATE [TEMPORARY] TABLE [IF NOT EXIST] <表名> |
TEMPORARY
若使用该关键字,则创建的是临时表
IF NOT EXIST
用于判断数据库中是否已经存在同名的表。若不存在,则执行CREATE TABLE
操作。若数据库中已存在同名表,创建数据表时会出错,为避免此种情况,可使用IF NOT EXIST
进行判断
<表名>
要创建的表名,最多可有64个字符,不允许重名,不能使用SQL中的关键字
<字段定义>
的书写格式如下:
1 | <字段名> <数据类型> [DEFAULT] [AUTO_INCREMENT] [COMMENT 'String'] [{<列约束>}] |
DEFAULT
若某字段设置有默认值,则当该字段未被输入数据时,自动填充设置的默认值
AUTO_INCREMENT
设置自增数值属性,只有整数型数据能够设置
COMMENT 'String'
注释字段名
<列约束>
列约束是对某一个特定字段的约束,包含在字段定义中,直接跟在该字段的其他定义之后,用空格分隔,不必指定字段名
<索引定义>
为表中相关字段指定索引
table_option
表选项,存储引擎,字符集等
selsct_statement
定义表的查询语句
例:创建名为students的数据表并添加基本属性
CREATE TABLE “students” (
“sno” CHAR(10) NOT NULL COMMENT “学号”,
“sname” VARCHAR(45) NOT NULL COMMENT “姓名”,
“sex” ENUM(“男”,”女”) NOT NULL DEFAULT “男” COMMENT “性别”,
“age” INT NOT NULL COMMENT “年龄”,
“major” VARCHAR(45) NOT NULL COMMENT “专业”,
“department” VARCHAR(45) NOT NULL COMMENT “院系”,
PRIMARY KEY (“sno”) //主码约束
)
定义表的约束:
- 非空约束(NULL/NOT NULL)
- 唯一约束(UNIQUE)
- 主码约束(PRIMARY KEY)
- 外码约束(FOREIGN KEY)
- 检查约束(CHECK)
修改表的数据
添加数据
1 | ALTER TABLE <表名> |
例:在students数据表中添加学生班级属性
ALTER TABLE students
ADD class VARCHAR(6);
重命名表名
1 | ALTER TABLE <数据表名> |
例:将students数据表重命名为student
ALTER TABLE students
RENAME student
修改表头
1 | ALTER TABLE <数据表名> |
例:将student数据表中的sname修改为sn
ALTER TABLE student
CHANFE sname sn VARCHAR(45);
修改表头数据类型和字段排序
1 | ALTER TABLE <数据表名> |
例:将student数据表中sn的数据类型修改为CHAR(30)
ALTER TABLE student
MODIFY sn CHAR(30);例:将student数据表中年龄age插到性别sex之前
ALTER TABLE student
MODIFY sex ENUM(“男”,”女”) AFTER age;
修改数据表存储引擎
1 | ALTER TABLE <表名> |
例:将存储引擎切换为MyISAM
ALTER TABLE student
ENGINE=MyISAM;
删除表头和完整性约束
1 | ALTER TABLE <旧表名> |
例:删除student数据表中class班级属性
ALTER TABLE students
DROP class;
删除数据表
1 | DROP TABLE [IF EXISTS] <表名>; |
例:删除student数据表
DROP TABLE student;