数据定义语言(DDL Data Definition Language)基础学习笔记
-
创建数据库
create database if not exists
STUDY
character set utf8 ; -
查看新建数据库的语句
SHOW CREATE DATABASE STUDY;
-
查看当前数据库版本
SELECT @@version ;
-
删除数据库
DROP DATABASE IF EXISTS STUDY;
-
指定数据库
USE STUDY;
-
新增数据表
CREATE TABLE IF NOT EXISTS S_TB_USER(
ID INT(11) DEFAULT NULL,
NAME VARCHAR(20) DEFAULT NULL,
AGE TINYINT DEFAULT NULL
)ENGINE=INNODB DEFAULT CHARSET=utf8;
-
查看当前数据库的数据表清单
SHOW TABLES;
-
删除表
DROP TABLE IF EXISTS S_TB_USER;
-
修改表名称
ALTER TABLE S_TB_USER RENAME TO S_TB_USERS;
ALTER TABLE S_TB_USERS RENAME TO S_TB_USER;
-
增加列
ALTER TABLE S_TB_USER ADD remark varchar(200);
-
在中间某字段之后添加字段
ALTER TABLE S_TB_USER ADD address VARCHAR(100) AFTER age;
-
在第一个字段前增加字段
ALTER TABLE S_TB_USER ADD FAMI_ID INT(11) FIRST;
-
查看当前表脚本
SHOW CREATE TABLE S_TB_USER;
-
删除列
ALTER TABLE S_TB_USER DROP COLUMN ADDRESS;
-
查看表结构
DESCRIBE S_TB_USER; DESC S_TB_USER;
-
修改列名称
ALTER TABLE S_TB_USER CHANGE remark REMARK VARCHAR(20);
-
修改字段类型
ALTER TABLE S_TB_USER MODIFY REMARK VARCHAR(100);
- 修改主键约束
- ALTER TABLE TEACHERS ADD PRIMARY KEY (TEACHER_ID);
- 修改外键约束
- ALTER TABLE TEACHERS ADD FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT(D_ID);
-
复制表(数据+表结构)
CREATE TEMPORARY TABLE IF NOT EXISTS S_TB_USERS_COPY;
-
复制表结构
CREATE TEMPORARY TABLE IF NOT EXISTS S_TB_USER_COPY2 LIKE S_TB_USER;
在创建表格时,您可以使用TEMPORARY关键词。只有在当前连接情况下,TEMPORARY表才是可见的。当连接关闭时,TEMPORARY表被自动取消。这意味着两个不同的连接可以使用相同的临时表名称,同时两个临时表不会互相冲突,也不与原有的同名的非临时表冲突。(原有的表被隐藏,直到临时表被取消时为止。)您必须拥有CREATE TEMPORARY TABLES权限,才能创建临时表。
-
主键约束 CREATE TABLE TB_FIRST( ID INT(10) NOT NULL PRIMARY KEY, F_NAME VARCHAR(20) );
CREATE TABLE TB_SEC(
ID INT(10) NOT NULL,
S_NAME VARCHAR(20),
PRIMARY KEY (ID)
);
-
联合主键
CREATE TABLE TB_THIRD(
ID INT(10) NOT NULL,
TH_NAME VARCHAR(20) NOT NULL,
PRIMARY KEY(ID,TH_NAME)
);
-
外键约束
CREATE TABLE TB_FOUR(
ID INT(11) NOT NULL,
S_ID INT(11) ,
F_NAME VARCHAR(45),
PRIMARY KEY(ID),
FOREIGN KEY(S_ID) REFERENCES TB_SEC(ID)
);
-
非空约束+唯一约束
CREATE TABLE TB_FIR(
ID INT(11) NOT NULL,
F_NAME VARCHAR(20),
UNIQUE(ID) );
-
自增字段
CREATE TABLE TB_SIX(
ID INT(11) NOT NULL UNIQUE AUTO_INCREMENT,
S_NAME VARCHAR(20)
);
CREATE TABLE TB_SEVEN(
ID INT(11) PRIMARY KEY AUTO_INCREMENT,
S_NAME VARCHAR(20)
);
- ALTER TABLE TB_SIX CHANGE ID ID INT(11) NOT NULL AUTO_INCREMENT;
- 注:只有int类型且为primary key 才可以使用auto_increment.