目录
创建表——CREATE TABLE
CREATE TABLE 表名称
(列名称1 数据类型 约束条件,
列名称2 数据类型 约束条件,
......
该表的约束条件1,该表的约束条件2);
mysql> -- 创建销售部员工信息表
mysql> create table staff_inf
-> (staff_id char(4) not null,
-> staff_name varchar(100) not null,
-> gender varchar(32) not null,
-> sales_target integer ,
-> sales_performance integer default 0,
-> birth_date date ,
-> primary key(staff_id));
Query OK, 0 rows affected (0.02 sec)
数据插入——INSERT
插入数据
INSERT INTO 表名称(列名称1,列名称2,......) VALUES(值1,值2,值3,......);
相关定义
1.清单:将表名称中的列名以及values中的值用逗号隔开,分别放在括号()内的,这种形式称为清单。
2.列清单:表名称中括号内的内容被称为列清单。
3.值清单:VALUES中括号内的内容被称为值清单。
注意事项:
1.列清单和值清单中的列数必须保持一致。
2.原则上,执行一次INSERT语句会插入一行数据。但很多RDBMS(Oracle除外)都支持多行INSERT——将多条VALUES子句通过逗号进行分隔排列。
3.对表进行全列INSERT时,可以省略表名称后的列清单,值清单中的值会按从左到右的顺序赋给每一列。
4.向未设置NOT NULL的列中插入数据时,想给该列赋予NULL值可以直接在值清单中写入NULL。
mysql> -- 插入数据
mysql> insert into staff_inf(staff_id,staff_name,gender,sales_target,sales_performance,birth_date) -> values('001','李玉','女',100000,110000,'1992-02-15');
Query OK, 1 row affected (0.01 sec)
mysql> -- 插入多行数据
mysql> insert into staff_inf(staff_id,staff_name,gender,sales_target,sales_performance,birth_date)
-> values('002','王二','男',150000,140000,'1993-03-28'),
-> ('003','钱进','男',17800,17900,'1991-05-18');
Query OK, 2 rows affected (0.04 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> -- 省略列清单
mysql> insert into staff_inf values('004','张曼','女',198000,175000,'1991-11-12');
Query OK, 1 row affected (0.04 sec)
mysql> -- 插入NULL数据
mysql> insert into staff_inf values('005','赵林','男',12000,NULL,'1994-09-11');
Query OK, 1 row affected (0.01 sec)
mysql> select * from staff_inf;
+----------+------------+--------+--------------+-------------------+------------+
| staff_id | staff_name | gender | sales_target | sales_performance | birth_date |
+----------+------------+--------+--------------+-------------------+------------+
| 001 | 李玉 | 女 | 100000 | 110000 | 1992-02-15 |
| 002 | 王二 | 男 | 150000 | 140000 | 1993-03-28 |
| 003 | 钱进 | 男 | 17800 | 17900 | 1991-05-18 |
| 004 | 张曼 | 女 | 198000 | 175000 | 1991-11-12 |
| 005 | 赵林 | 男 | 12000 | NULL | 1994-09-11 |
+----------+------------+--------+--------------+-------------------+------------+
5 rows in set (0.00 sec)
插入默认值
1.创建表时,可以在CREATE TABLE语句中设置DEFAULT 约束来设定默认值。
2.显示方法插入默认值:在VALUES子句中指定DEFAULT关键字。
3.隐式方法插入默认值:在列清单和值清单中均省略设定了默认值的列。
4.如果省略了没有被设定默认值的列,该列的值会被设定为NULL。
mysql> -- 创建销售部员工信息表
mysql> create table staff_inf
-> (staff_id char(4) not null,
-> staff_name varchar(100) not null,
-> gender varchar(32) not null,
-> sales_target integer ,
-> sales_performance integer default 0,
-> birth_date date ,
-> primary key(staff_id));
Query OK, 0 rows affected (0.02 sec)
mysql> desc staff_inf;
+-------------------+--------------+------+-----+---------+-------+
| F