目录
首先建主表
create table emp_position(
eno int auto_increment 设置主键自增长
ename varchar(20) mySQL没有varchar
esex varchar(20),
esal int,
position int,设置成int型,作为表的外键
createtime datetime,
primary key(eno)
)default charset=utf8;
知识点:
1、设置主键自增长
字段名 int auto_increment
2、varchar(20),mySQL没有varchar
3、防止中文乱码
default charset=utf8
建附表
注意附表必须设置主键的定义是:主表的一个字段指向了另一个表的主键,如果附表没有主键,外键不成立
create table position (
pid int,
pname varchar(20)
)default charset=utf8;
知识点:
1、外键:
主表的一个字段指向了附表的主键,这个字段在主表内被称为外键
2、对已经建立的表设置主键
语法:
alter table 表名 add primary key (主键字段名);
alter table position add primary key(pid);
3、设置外键:
语法:
ALTER TABLE 子表名称
ADD CONSTRAINT 外键约束名称
FOREIGN KEY (子表列)
REFERENCES 父表名称 (父表列);
alter table position
add constraint ep_fk froreign key (pid)
references emp_posion (eposition);
注意:新建表的时候需要插入数据的时候要先插入子表的数据,然后才能插入主表数据
sql脚本:
CREATE TABLE emp_supermarket (
eno INT AUTO_INCREMENT,
ename VARCHAR ( 20 ),
esex VARCHAR ( 20 ),
eposition INT,
esal INTEGER,
createtime datetime,
PRIMARY KEY ( eno )
) DEFAULT charset = utf8;
CREATE TABLE position ( pid INT, pname VARCHAR ( 20 ) ) DEFAULT charset = utf8;
ALTER TABLE position ADD PRIMARY KEY ( pid );
ALTER TABLE emp_supermarket ADD CONSTRAINT ep_fk FOREIGN KEY ( eposition ) REFERENCES position ( pid );
INSERT INTO position
VALUES
( 1, '收银' );
INSERT INTO position
VALUES
( 2, '运货' );
INSERT INTO position
VALUES
( 3, '导购' );
INSERT INTO emp_supermarket
VALUES
(
NULL,
'王伟',
'男',
1,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'李秀英',
'女',
1,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'张勇',
'男',
2,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'王芳',
'女',
3,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'李强',
'男',
1,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'张敏',
'女',
2,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'李娜',
'女',
3,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'张磊',
'男',
1,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'王丽',
'女',
2,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'李勇',
'男',
3,
8000,
now());
INSERT INTO emp_supermarket
VALUES
(
NULL,
'张婷',
'女',
1,
8000,
now());