其他分享
首页 > 其他分享> > zb_对表操作

zb_对表操作

作者:互联网

目录

查看表

# 进入数据库
USE myBD
# 查看所有表
SHOW TABLES;
+----------------+
| Tables_in_mybd |
+----------------+
| dept           |
| emp            |
+----------------+
# 查看库中表的信息
SHOW TABLE STATUS;
# 查看dept表创建信息,查看外键名
SHOW CREATE TABLE dept;
+-------+------------------------------------------+
| Table | Create Table                             |
+-------+------------------------------------------+
| dept  | CREATE TABLE `dept` (
  `deptno` char(2) NOT NULL,
  `dname` varchar(14) DEFAULT NULL,
  `loc` varchar(13) DEFAULT NULL,
  PRIMARY KEY (`deptno`),
  UNIQUE KEY `dname` (`dname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8               |
+-------+------------------------------------------+
# 查看dept的结构
DESC emp;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| empno    | char(4)      | NO   | PRI | NULL    |       |
| ename    | varchar(10)  | YES  |     | NULL    |       |
| job      | varchar(9)   | YES  |     | NULL    |       |
| mgr      | char(4)      | YES  |     | NULL    |       |
| hiredate | date         | YES  |     | NULL    |       |
| sal      | decimal(7,2) | YES  |     | NULL    |       |
| comm     | decimal(7,2) | YES  |     | NULL    |       |
| deptno   | char(2)      | YES  | MUL | NULL    |       |
+----------+--------------+------+-----+---------+-------+
# 启动innodb引擎
# create table user()ENGINES=INNODB DEFAULT CHARSET=utf8mb4;
/*------------------------删除表-------------------------*/
DROP TABLE table_name ;

创建表

CREATE TABLE emp (
empno CHAR(4) AUTO_INCREMENT PRIMARY KEY,/*[字段级约束]*/
ename VARCHAR(10),
job VARCHAR(9),
mgr CHAR(4) DEFAULT '未知' ,
hiredate DATE,
sal DECIMAL(7,2),
comm DECIMAL(7,2),
deptno CHAR(2),
PRIMARY KEY(empno,ename),
FOREIGN KEY(deptno) REFERENCES dept(deptno)/*[表级约束] 与dept表关联*//*最后一个后面不能有逗号*/
);
CONSTRAINT fr_stuno FOREIGN KEY(deptno) REFERENCES dept(deptno)# CONSTRAINT 约束名称,一般系统自动,你可以自己改
DEFAULT# 默认值
AUTO_INCREMENT # 自增
decimal(7,2) # 精准数据类型 7表示有效数字位数,2是小数位数

修改表

# ------修改表名------
ALTER TABLE 旧表名 RENAME TO 新表名;
# ------对列操作------
# ---添加 ADD---
ALTER TABLE dept ADD COLUMN dtelephone CHAR(11);/*增加一列dtelephone CHAR(11)*/
ALTER TABLE emp ADD PRIMARY KEY(empno);/*添加主键*/
ALTER TABLE emp ADD FOREIGN KEY(deptno) REFERENCES dept(deptno);/*添加外键*/
# ---删除 DROP---
ALTER TABLE emp DROP COLUMN hiredate;/*删除emp表的hiredate列*/
ALTER TABLE emp DROP PRIMARY KEY;/*删除表主键*/
# ---修改 MODIFY与CHANGE---
# --MODIFY修改属性--
/*ALTER TABLE 表名 MODIFY 字段名 数据类型 约束*/
ALTER TABLE employee MODIFY comm DECIMAL(8,1);/*emp表comm列的数据类型修改为DECIMAL (8,1)*/
ALTER TABLE stuinfo MODIFY stuaddress VARCHAR(60) DEFAULT `地址不详` ;/*给stuinfo表的stuaddress列设默认值:地址不详*/
# -移动-  FIRST|AFTER 把emp表中的comm列移动sal列之后
ALTER TABLE employee MODIFY comm DECIMAL (7,2) AFTER sal;
# --CHANGE修改属性--
ALTER TABLE 表名 CHANGE 原列名 新列名 新数据类型;
# change用来字段重命名,不能修改字段类型和约束;
# modify不用来字段重命名,只能修改字段类型和约束;

删除表

DROP TABLE 表名;

六种约束

/*MySQL的六种约束*/
PRIMARY KEY/*主键约束,若主键由多个属性组成要定义成表级*/
FOREIGN KEY/*外键约束,定义成表级*/
UNIQUE/*唯一约束:允许NULL值;非主键(多)字段值唯一;可定义多个*/
NOT NULL/*非空约束,只能字段级*/
DEFAULT/*默认约束,只能字段级*/
CHECK(stuscore between 0 and 100)/*范围between..and..,..and..,..or..*/

标签:对表,zb,dept,emp,KEY,操作,TABLE,NULL,ALTER
来源: https://www.cnblogs.com/naitiam/p/16315872.html