通过SQL命令创建表、删除表(二)
通过SQL命令创建表、删除表
创建表命令
--emp表(员工表) create table emp ( empno int primary key, ename nvarchar(200), job nvarchar(200), mgr int , hiredate datetime, sal int , comm int, deptno int constraint fk_deptno foreign key references dept(deptno) ) --以上表解读 --create table 表名( -- 列名1 数据类型 主键, -- 列名2 数据类型, -- ... -- 列名7 数据类型, -- 列名8 数据类型 外键(dept表中deptno的外键) --) --dept表(部门表) create table dept( deptno int primary key, dname nvarchar(200), loc nvarchar(200), ) --以上表解读 --create table 表名( -- 列名1 数据类型 主键, -- 列名2 数据类型, -- 列名3 数据类型, --) --salgrade表(工资表) create table salgrade( grade int primary key, losal int, hisal int, )
表中插入数据命令
insert into dept values (001,研发部,111) --执行成功 insert into dept values (002,市场部,222) --error 列名或所提供值的数目与表定义不匹配。 insert into dept(deptno,dname) values (003,财务部) --执行成功 insert into dept(deptno,dname,loc) values (004,行政部) --INSERT 语句中列的数目大于 VALUES 子句中指定的值的数目。 --VALUES 子句中值的数目必须与 INSERT 语句中指定的列的数目匹配。
select * from dept --查询表dept中所有数据
删除表命令
drop table emp
关系
什么是关系: 表和表之间的联系 实现方式: 通过设置不同形式的外键来体现表和表的不同关系 分类: 一对一: 例如既可以把表1的主键充当表2的外键,也可以把表2的主键充当表1的外键 一对多: 把表1的主键充当表2 的外键,即把表1的主键添加到表2中充当表2的外键 注意:在数据使用次数多的那一方添加外键 多对多: 多对多必须通过单独的一张表来表示,例如班级和教师之间的关系也可以用一张表表示(一个班级可以对应多个教师,而一个教师也可以对应多个班级)
主键
概述:能唯一标识一个事物的一个字段或者多个字段的组合 特点: 1、含有主键的表称之为主键表 2、主键通常都是整数,不建议使用字符串当主键(如果主键是用于集群式服务,才可以考虑用字符串当主键) 3、主键的值通常都不允许修改,除非本记录被删除 4、主键不要定义为id,而要规范定义,如表明Id或表明_id 5、要用代理主键(无实际含义),而不要用业务主键(有实际意义的),所以通常在表中单独添加一个整型的编号充当主键字段 6、主键是否连续增长并不是十分重要
外键
概述:如果一个表中的若干字段是来自另外若干个表的主键或唯一键,则这个若干字段就是外键
注意: 1、外键统称是来自另外表的主键,而不是唯一键,因为唯一键可能为null 2、外键不一定是来自另外的表,也可能来自本表的主键 3、含有外键的表称之为外键表,外键字段来自的那一张叫做主键表
Question:主键表、外键表若需删除,该先删除哪一个? 先删外键表,因为如果先删除了主键表,那么会导致外键表中的数据引用失败
下一篇:
MySQL循环插入100w条数据