对应第5章
表的命名最好:t_xxx 或 tab_xxx
最好操作都用语句实现,因为后期可以用代码容易再次执行。
基本操作
创建表:
法一:右键新建表
法二:create命令创建
删除表:
法一:右键
法二:先定位到当前数据库,之后 DROP TABLE t_dept;
修改表:
重命名:ALTER TABLE old_name RENAME new_name;
增加一列(字段):ALTER TABLE table_name ADD 新列名 新列类型;
删除一列:ALTER TABLE table_name DROP 列名;
增加一列并将该列放在第一列的位置:ALTER TABLE table_name ADD 新列名 新列类型 FIRST;
在指定某列后加一列:ALTER TABLE table_name ADD 新列名 新列类型 AFTER 某列名;
修改一列:
改列的数据类型:ALTER TABLE table_name MODIFY 列名 新的数据类型;
改列名:ALTER TABLE table_name CHANGE 旧列名 新列名 旧数据类型;
改列名和属性:ALTER TABLE table_name CHANGE 旧列名 新列名 新数据类型;
修改列的顺序:
将列调到第一列:ALTER TABLE table_name MODIFY 列名 列数据类型 FIRST;
将列调到某列之后:ALTER TABLE table_name MODIFY 列名 列数据类型 AFTER 某列名;
最方便的改法:
用SQLyog,右键“改变表”,可以轻松地增删、移动次序
行的增删改:
增加:INSERT INTO 表名 VALUES(一系列属性值);
删除:
DELETE FROM 表名
WHERE 某属性名='某值';
修改:
UPDATE 表名
set 某属性为新值
WHERE 某属性名='某值';
操作表的约束
约束就是非空、主键等的约束。
看你是否要给约束起名字,如果起就用起名的那种写法,不起名字就直接在属性后加上约束即可。
可以直接在属性后面写上约束即可。例如
CREATE TABLE t_li(
deptno INT(20) NOT NULL UNIQUE,
dname VARCHAR(20) DEFAULT 'tonghua',
loc VARCHAR(40)
);
也可以起名字,约束起名字最好“约束缩写_字段名”的方式。
给属性加上UNIQUE约束,并起名字
CREATE TABLE t_li(
deptno INT(20) NOT NULL,
dname VARCHAR(20),
CONSTRAINT uk_dname UNIQUE(dname) -- CONSTRAINT 约束名 约束动作
);
设置字段值自动增加:
例 属性
deptno INT PRIMARY KEY AUTO_INCREMENT, --设为主键并自动增加,自动增加可以利用生成唯一的ID
给主键起名的写法:
CREATE TABLE t_dept(
deptno INT,
dname VARCHAR(20),
loc VARCHAR(40),
CONSTRAINT pk_dname_deptno PRIMARY KEY(deptno,dname)
);
外键约束:
CREATE TABLE t_employee(
empno INT PRIMARY KEY,
ename VARCHAR(20),
deptno INT,
CONSTRAINT fk_deptno FOREIGN KEY(deptno) REFERENCES t_dept(deptno)
);
-- 利用t_dept与t_employee表都有的属性deptno建立外键