
逻辑库
1)创建逻辑库:CREATE DATABASE 逻辑库名称;2)显示逻辑库:SHOW DATABASES;3)删除逻辑库:DROP DATABASE 逻辑库名称;
数据表
1)显示逻辑库有哪些表:SHOW TABLES;2)查看student表具体信息:DESC student;3)查看当时创建student表的SQL:SHOW CREATE TABLE student;4)删除student表:DROP TABLE student;
5)创建数据表(中括号内容非必须项):CREATE TABLE 数据表( 列名1 数据类型 【约束】 【COMMENT 注释】, 列名2 数据类型 【约束】 【COMMENT 注释】, ...... )【COMMENT=注释】;#实例:#UNSIGNED :不带-号的整数; PRIMARY KEY 主键use test;CREATE TABLE student( id INT UNSIGNED PRIMARY KEY, name VARCHAR(20) NOT NULL, sex CHAR(1) NOT NULL, birthday DATE NOT NULL, tel CHAR(11) NOT NULL, remark VARCHAR(200));#插入数据校验INSERT INTO student VALUES(1,'张三','男','2000-02-22','11111111111',NULL);
6)数据表添加字段:ALTER TABLE 表名称ADD 列1 数据类型 【约束】 【COMMENT 注释】,ADD 列1 数据类型 【约束】 【COMMENT 注释】,……;
#实例:ALTER TABLE studentADD address VARCHAR(200) NOT NULL,ADD home_tel CHAR(11) NOT NULL;
7)修改表字段类型和约束ALTER TABLE 表名称MODIFY 列1 数据类型 【约束】【COMMENT 注释】,MODIFY 列2 数据类型 【约束】【COMMENT 注释】,……;
#实例ALTER TABLE studentMODIFY home_tel VARCHAR(20) NOT NULL;DESC student;#查看表信息,核对字段是否已修改过来
8)修改表字段名称ALTER TABLE 表名称CHANGE 列1 新列名1 数据类型 【约束】【COMMENT 注释】,CHANGE 列2 新列名2 数据类型 【约束】【COMMENT 注释】,……;
#实例ALTER TABLE studentCHANGE address home_address VARCHAR(200) NOT NULL;DESC student;#查看表信息,核对字段是否已修改过来
9)表删除字段ALTER TABLE 表名称DROP 列1,DROP 列2,……;#实例ALTER TABLE studentDROP home_address,DROP home_tel;DESC student;#查看表信息,核对字段是否已修改过来



前置知识





设计数据表要符合第三范式,下面是字段约束的讲解




CREATE TABLE t_teacher( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, #int类型,不能取负整数(UNSIGNED),约束条件:主键约束(PRIMARY KEY),id自增(AUTO_INCREMENT) name VARCHAR(20) NOT NULL, #约束条件:非空约束(NOT NULL) tel CHAR(11) NOT NULL UNIQUE, #约束条件:非空约束(NOT NULL),唯一约束(UNIQUE) married BOOLEAN NOT NULL DEFAULT FALSE #约束条件:非空约束(NOT NULL),默认值为FALSE(DEFAULT FALSE)



#父表;CREATE TABLE t_dept( deptno INT UNSIGNED PRIMARY KEY, dname VARCHAR(20) NOT NULL UNIQUE, tel CHAR(4) UNIQUE);#子表CREATE TABLE t_emp( empno INT UNSIGNED PRIMARY KEY, ename VARCHAR(20) NOT NULL, sex ENUM("男","女") NOT NULL, deptno INT UNSIGNED, hiredate DATE NOT NULL, FOREIGN KEY (deptno) REFERENCES t_dept(deptno) #外键约束);

查看数据表有哪些索引
SHOW INDEX FROM 表名;
创建数据表同时创建索引
CREATE TABLE( ......, INDEX [索引名称] (字段), #[索引名称]不填时,索引名称默认就是字段名称 ......);#实例CREATE TABLE t_message( id INT UNSIGNED PRIMARY KEY, content VARCHAR(200) NOT NULL, type ENUM("公告","通知","个人通知"), create_time TIMESTAMP NOT NULL, INDEX idx_type (type));
数据表已经存在,添加索引
#方式一CREATE INDEX 索引名称 ON 表名(字段);#方式二ALTER TABLE 表名称 ADD INDEX [索引名](字段);
数据表已经存在,删除索引
DROP INDEX 索引名称 ON 表名;
DROP INDEX idx_type ON t_message;CREATE INDEX idx_type ON t_message(type);SHOW INDEX FROM t_message;

5.1.DESC和SHOW CREATE TABLE的区别


5.2.MODIFY和CHANGE的区别
5.3.TIME和TIMESTAMP的区别


5.4. CHAR和VARCHAR的区别