八、mysql语句的DDL语句
一、库定义
1、创建库
创建一个不存在的数据库 create database school; create schema sch; 查看支持的字符集 show charset; 查看支持的校对规则 show collation; 完整创建一个不存在的数据库,建议的操作 CREATE DATABASE test CHARSET utf8; #创建一个test库,字符集为utf8 create database xyz charset utf8mb4 collate utf8mb4_bin; #创建一个xyz库,字符集为utf8mb4,校对规则为uft8mb4_bin(大小写敏感,注意:校对规则必须与字符集一致) 建库规范: 1.库名不能有大写字母 2.建库要加字符集 3.库名不能有数字开头 4. 库名要和业务相关
mysql> create database db charset utf8mb4;
mysql> show create database xuexiao; #查看创建库的语句
mysql> drop database ywx;
#物理删除ywx库及库中的所有表
SHOW CREATE DATABASE school;
ALTER DATABASE school CHARSET utf8;
注意:修改字符集,修改后的字符集一定是原字符集的严格超集(修改后的字符集一定要包含原字符集)
show databases;#查看所有库名
show create database ywx; #查看创建ywx库的创建语句
1、创建表格式
create table stu(
列1 属性(数据类型、约束、其他属性) ,
列2 属性,
列3 属性
);
USE school; #进入school数据库 CREATE TABLE stu( #创建列及其属性信息 id INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号', sname VARCHAR(255) NOT NULL COMMENT '姓名', sage TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄', sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' , sfz CHAR(18) NOT NULL UNIQUE COMMENT '身份证', intime TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间' ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';
建表规范:
1. 表名小写 2. 不能是数字开头 3. 注意字符集和存储引擎 4. 表名和业务有关 5. 选择合适的数据类型 6. 每个列都要有注释 7. 每个列设置为非空,无法保证非空,用0来填充。
drop table t1;
物理删除t1表的所有信息
4.1添加列
在stu表中添加qq列
DESC stu; ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';
ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT '微信号' AFTER sname ;
在id列前加一个新列num
ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST; DESC stu;
把刚才添加的列都删掉(危险)
ALTER TABLE stu DROP num;
ALTER TABLE stu DROP qq;
ALTER TABLE stu DROP wechat;
修改sname数据类型的属性
ALTER TABLE stu MODIFY sname VARCHAR(128) NOT NULL ;
将sgender 改为 sg 数据类型改为 CHAR 类型
ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ; DESC stu;
#change可以更改列的名称,也可以更改列的属性;modify只能更改列的属性。
I have a dream so I study hard!!!