
mysql基础(二)
2021-01-02 / highPhone啊
数据操作语言(DML)
插入数据
语法: insert into
table_name(field1, field2, …) values(value1, value2,….),(value1,value2,…)
往数据表test中插入一条数据:
1
2
3
4
5
6
7
8
9
10
#创建数据表
create table `test`(
`id` int unsigned auto_increment,
`username` varchar(50),
`password` varchar(100),
primary key(`id`)
)engine=InnoDb default charset=utf8;
#插入一条数据,由于id是主键,切自动增长,我们在插入数据的时候并不需要显示指明主键。
insert into `test`(`username`,`password`) values('zhangsan', '123456');

往数据表中插入多条数据
1
2
3
4
5
#插入多条数据
insert into `test`(`username`,`password`) values
('lisi', '123456'),
('wangwu', '123456'),
('tianqi', '123456');

注意事项
语法中的的(field1, field2, …)可以不写,但不写此项需要在values中写全表中的所有字段的值,所以写insert语句的时候,建议field与value要一一对应
1 | #insert into `test` values('zhaoliu', '1234'); |

修改数据
语法:update
table_namesetfield_namewhere 条件
把id > 3的用户名设置成highphone
1
update `test` set `username`='highphone' where `id` > 3;

双重条件 and 和 or
1
2
3
4
# 把id > 2和id < 3的密码修改成1234
update `test` set `password`='1234' where `id` > 1 and `id` < 3;
# 把id = 1 或id = 3的记录的用户名修改成highphone1
update `test` set `username`='highphone1' where `id` = 1 or `id` = 3 ;


where子句
where子句操作符返回布尔值
| 含义 | 操作符 | 示例 | 结果 |
|---|---|---|---|
| 等于 | = | 1=2 | false |
| 不等于 | <>或!= | 1<>2 | true |
| 大于 | > | 1 > 2 | false |
| 小于 | < | 1 < 2 | true |
| 大于等于 | >= | 1 >=2 | false |
| 小于等于 | <= | 1 <=2 | true |
| 在..范围 | between…and | [2, 5] | 闭区间 |
| 且 | and | 5 > 2 and 2 > 1 | true |
| 或 | or | 5 > 2 or 1 > 2 | true |
删除数据
语法: delete from
table_name[where 条件]
delete命令
1 | --删除全部数据(不建议使用) |
truncate命令
作用: 完全清空一个数据库表,表的结构和索引不会变
1 | truncate `test` |
delete和truncate的区别
- 相同点:都能删除整表数据,都不会删除表结构
- 不同点:
- truncate 可以重新设置自增列,计数器会归零,delete 不会重置自增列的计算器(innodb中重启数据库会重置)
- truncate 不会影响事务
数据查询语言(DQL)
Select语法:
1
2
3
4
5
6
7
8
9
10
SELECT [ALL| DISTINCT]
{[tablename.]* | [tablename.]field1 [AS alias], [tablename.]field2 [AS alias],....}
FROM tablename [AS alias]
[LEFT | RIGHT | INNER JOIN tablename AS alias]
[WHERE 条件]
[GROUP BY fieldname]
[HAVING 条件]
[ORDER BY fieldName ,... ASC|DESC]
[LIMIT startIndex pageSize]
- Select [ALL| DISTINCT]
ALL代表查询结果全部显示出来(默认), DISTINCT代表查询结果去重 - {[tablename.]* | [tablename.]field1 [AS alias], [tablename.]field2 [AS alias],….}
中括号内为可选内容,*|tablename.*代表查询全部列。field1或者tablename.field1表示查询指定列,多个filed中用,分隔开,as子句为指定列其别名(可选,如指定,查询结果中显示的就是别名) - FROM tablename [AS alias]
查询指定数据表,as子句为指定数据表别名,可用别名代替数据表名 - [LEFT | RIGHT | INNER JOIN tablename AS alias]
连表查询,可选左连接、右连接、内连接 - [WHERE 条件]
where子句,查询需要满足此条件的数据 - [GROUP BY fieldname]
查询结果按照指定列分组 - [HAVING 条件]
分组查询结果上再根据having条件过滤 - [ORDER BY fieldName ,… ASC|DESC]
根据指定一个或者多个字段排序 ASC 升序 DESC 降序 - [LIMIT startIndex pageSize]
指定分页查询,参数是当前页起始位置和当前页行数。
本文链接:https://highphone.xyz/8baabe1.html