Mysql创建数据表基本操作实战

一 创建员工表tb_emp1

1 首先创建数据库,SQL语句如下:

mysql> CREATE  DATABASE test_db;
Query OK, 1 row affected (0.00 sec)

2 选择创建表的数据库,SQL语句如下:

mysql> USE test_db;
Database changed

3 创建tb_emp1表,SQL语句为:

CREATE TABLE tb_emp1
(
    id      INT(11),
    name   VARCHAR(25),
    deptId  INT(11),
    salary  FLOAT
);

4 语句执行后,便创建了一个名称为tb_emp1的数据表,使用SHOW TABLES;语句查看数据表是否创建成功,SQL语句如下:

mysql> SHOW TABLES;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_emp1           |
+-------------------+
1 row in set (0.00 sec)

5 可以看到,test_db数据库中已经有了数据表tb_tmp1,数据表创建成功。

二 定义数据表tb_emp 2,其主键为id,SQL语句如下

CREATE TABLE tb_emp2
(
    id        INT(11) PRIMARY KEY,
    name      VARCHAR(25),
    deptId    INT(11),
    salary    FLOAT
);

三 定义数据表tb_emp 3,其主键为id,SQL语句如下

CREATE TABLE tb_emp3
(
    id INT(11),
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    PRIMARY KEY(id)
);

上述两个例子执行后的结果是一样的,都会在id字段上设置主键约束。

四 定义数据表tb_emp4,假设表中间没有主键id,为了唯一确定一个员工,可以把name、deptId联合起来做为主键,SQL语句如下

CREATE TABLE tb_emp4
(
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT,
    PRIMARY KEY(name,deptId)
);

五 定义数据表tb_emp5,并在tb_emp5表上创建外键约束

1 创建一个部门表tb_dept1,SQL语句如下:

CREATE TABLE tb_dept1
(
    id       INT(11) PRIMARY KEY,
    name    VARCHAR(22)  NOT NULL,
    location  VARCHAR(50)
);

2 定义数据表tb_emp5,让它的键deptId作为外键关联到tb_dept1的主键id,SQL语句为:

CREATE TABLE tb_emp5
(
    id      INT(11) PRIMARY KEY,
    name   VARCHAR(25),
    deptId  INT(11),
    salary   FLOAT,
    CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);

以上语句执行成功之后,在表tb_emp5上添加了名称为fk_emp_dept1的外键约束,外键名称为deptId,其依赖于表tb_dept1的主键id。

六 定义数据表tb_emp6,指定员工的名称不能为空,SQL语句如下

CREATE TABLE tb_emp6
(
    id     INT(11) PRIMARY KEY,
    name   VARCHAR(25) NOT NULL,
    deptId  INT(11),
    salary  FLOAT
);

七 定义数据表tb_dept2,指定部门的名称唯一,SQL语句如下

CREATE TABLE tb_dept2
(
    id      INT(11) PRIMARY KEY,
    name    VARCHAR(22) UNIQUE,
    location  VARCHAR(50)
);

八 定义数据表tb_dept3,指定部门的名称唯一,SQL语句如下

CREATE TABLE tb_dept3
(
    id      INT(11) PRIMARY KEY,
    name    VARCHAR(22),
    location  VARCHAR(50),
    CONSTRAINT STH UNIQUE(name)
);

九 定义数据表tb_emp7,指定员工的部门编号默认为1111,SQL语句如下

CREATE TABLE tb_emp7
(
    id      INT(11) PRIMARY KEY,
    name   VARCHAR(25) NOT NULL,
    deptId  INT(11) DEFAULT 1111,
    salary  FLOAT
);

十 定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下

CREATE TABLE tb_emp8
(
    id      INT(11) PRIMARY KEY AUTO_INCREMENT,
    name   VARCHAR(25) NOT NULL,
    deptId  INT(11),
    salary  FLOAT
);

例如,执行如下插入语句:

INSERT INTO tb_emp8 (name,salary) VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);

语句执行完后,tb_emp8表中增加3条记录,在这里并没有输入id的值,但系统已经自动添加该值,使用SELECT命令查看记录,如下所示。

mysql> SELECT * FROM tb_emp8;
+----+-------+--------+--------+
| id | name  | deptId | salary |
+----+-------+--------+--------+
|  1 | Lucy  |   NULL |   1000 |
|  2 | Lura  |   NULL |   1200 |
|  3 | Kevin |   NULL |   1500 |
+----+-------+--------+--------+
3 rows in set (0.00 sec)

 

你可能感兴趣的:(Mysql)