1. MySQL增删改查之插入记录
1.1 插入记录两种基本语法
插入基本语法一
基本语法 insert into
表 values
(值1,值2,值n);
示例 insert into user values(2,‘PHP中文网’,‘男’);
示例说明 向user表中插入一条id为2,姓名为李文凯,性别为男的记录
插入基本语法二
基本语法 insert into 表(字段1,字段2,字段n) values(值1,值2,值n);
示例 insert into user(id,username,sex) values(213,‘小沈阳’,1);
示例说明 向user表中插入一条id为213,username为小沈阳,性别为1的记录
说明:
基本语法1和基本语法2的区别是:
- 基本语法1的插入语句,表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。
- 基本语法2中,除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值。
基本语法2中,以user(id,username,sex)字段顺序为值的顺序。
按照基本语法二写上表中的插入语句:
insert into user(username,sex) values('oldboy',1);
基本语法变形:一次插入多条记录
insert into user(username,password,sex) values
('黄晓明', 'abcdef', 1),
( 'angelababy', 'bcdeef', 0),
( '陈赫', '123456', 1),
('王宝强', '987654', 1);
1.2 基础查询
创建表的语句如下:
create table if not exists stars_info(
id int unsigned primary key auto_increment not null,
username varchar(20) not null,
balance float,
province varchar(20) not null,
age tinyint,
sex bool
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
基本语法 select * from 表;
示例 select * from stars_info;
示例说明 查询stars_info表所有字段的所有结果
注:”*” 是一种正则表达式的写法,表示匹配所有。
先向表中插入数据:
insert into stars_info
(id,username,balance,province,age,sex)
values
(1,'王宝强',120.02,'河北',29,1),
(2,'范冰冰',260.23,'山东',40,0),
(3,'黄晓明',150.86,'山东',40,1),
(4,'井柏然',810,'辽宁',27,1),
(5,'李冰冰',20.15,'黑龙江',43,0),
(6,'成龙',313,'山东',63,1),
(7,'杨幂',123,'北京',30,0),
(8,'刘诗诗',456,'北京',29,1),
(9,'柳岩',23.4,'湖南',36,0),
(10,'赵本山',3456,'辽宁',63,1),
(11,'汪峰',34.32,'北京',44,1),
(12,'郭德纲',212,'天津',43,1);
Query OK, 12 rows affected (0.01 sec)
Records: 12 Duplicateos: 0 Warnings: 0
查询表里的所有内容:
mysql> select * from stars_info;
+----+-----------+---------+-----------+------+------+
| id | username | balance | province | age | sex |
+----+-----------+---------+-----------+------+------+
| 1 | 王宝强 | 120.02 | 河北 | 29 | 1 |
| 2 | 范冰冰 | 260.23 | 山东 | 40 | 0 |
| 3 | 黄晓明 | 150.86 | 山东 | 40 | 1 |
| 4 | 井柏然 | 810 | 辽宁 | 27 | 1 |
| 5 | 李冰冰 | 20.15 | 黑龙江 | 43 | 0 |
| 6 | 成龙 | 313 | 山东 | 63 | 1 |
| 7 | 杨幂 | 123 | 北京 | 30 | 0 |
| 8 | 刘诗诗 | 456 | 北京 | 29 | 1 |
| 9 | 柳岩 | 23.4 | 湖南 | 36 | 0 |
| 10 | 赵本山 | 3456 | 辽宁 | 63 | 1 |
| 11 | 汪峰 | 34.32 | 北京 | 44 | 1 |
| 12 | 郭德纲 | 212 | 天津 | 43 | 1 |
+----+-----------+---------+-----------+------+------+
12 rows in set (0.01 sec)
1.3 指定字段查询
基本语法 select 字段 from 表;
示例 select id,username, balance from stars_info;
示例说明 查询stars_info表中id,username, balance字段中的所有结果
mysql> select id,username,balance from stars_info;
+----+-----------+---------+
| id | username | balance |
+----+-----------+---------+
| 1 | 王宝强 | 120.02 |
| 2 | 范冰冰 | 260.23 |
| 3 | 黄晓明 | 150.86 |
| 4 | 井柏然 | 810 |
| 5 | 李冰冰 | 20.15 |
| 6 | 成龙 | 313 |
| 7 | 杨幂 | 123 |
| 8 | 刘诗诗 | 456 |
| 9 | 柳岩 | 23.4 |
| 10 | 赵本山 | 3456 |
| 11 | 汪峰 | 34.32 |
| 12 | 郭德纲 | 212 |
+----+-----------+---------+
12 rows in set (0.01 sec)
1.4 查询单个字段不重复记录 distinct
基本语法 select distinct 字段 from 表;
示例 select distinct age deptno from stars_info;
示例说明 查询stars_info表中年龄唯一的所有结果
mysql> select dist