数据库—3(表数据操作的SQL语句,增删改查)

上一节中已经创建了数据库和表,但是数据为空,这一节将介绍数据库的增、删、改、查

一、表简单操作——增、删、改、查
1.1  查看数据

查询所有列
    select *  from 表名;
    例:
    mysql> select * from personinfo;
    指定查找哪些列
    mysql> select 列1,列2 from 表名;
    例:
    mysql> select name,age from personinfo;

1.2 增加数据
   增加整列数据

insert into 表名 values (...)
例:
insert into personinfo values(0, 'xiaowang', 18, '男',172,'成都','高新区合作路1111号','510131198605136412');


mysql> select * from personinfo;
+----+----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name     | age  | gender | height | city   | addr                      | personId           |
+----+----------+------+--------+--------+--------+---------------------------+--------------------+
|  1 | xiaowang |   18 | 男     | 172.00 | 成都   | 高新区合作路1111号        | 510131198605136412 |
+----+----------+------+--------+--------+--------+---------------------------+--------------------+
1 row in set (0.01 sec)

增加部分列:

#insert into 表名 (列1,列2) values(值1,值2)
insert into personinfo (id,name,age,gender,height,personId) values(null, 'xiaozhang', 20, '男',172,'510131198605136412');

mysql> select * from personinfo;
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name      | age  | gender | height | city   | addr                      | personId           |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
|  1 | xiaowang  |   18 | 男     | 172.00 | 成都   | 高新区合作路1111号        | 510131198605136412 |
|  2 | xiaozhang |   20 | 男     | 172.00 | NULL   | NULL                      | 510131198605136412 |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
2 rows in set (0.00 sec)

全部列多行插入:

insert into 表名 value(值1,值2,值3),(值1,值2,值3)
例:
insert into personinfo values(0, 'xiaoliao', 25, '男',172,'成都','高新区合作路1112号','510131198605106578'),(0, 'xiaozhao', 30, '女',160,'成都','双流区空港4路128号','510131198905101234');

mysql> select * from personinfo;
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name      | age  | gender | height | city   | addr                      | personId           |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
|  1 | xiaowang  |   18 | 男     | 172.00 | 成都   | 高新区合作路1111号        | 510131198605136412 |
|  2 | xiaozhang |   20 | 男     | 172.00 | NULL   | NULL                      | 510131198605136412 |
|  3 | xiaoliao  |   25 | 男     | 172.00 | 成都   | 高新区合作路1112号        | 510131198605106578 |
|  4 | xiaozhao  |   30 | 女     | 160.00 | 成都   | 双流区空港4路128号        | 510131198905101234 |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
4 rows in set (0.00 sec)


部分列多行插入

部分列多行插入
insert into 表名 (列1,...) values(值1,...),(值1,...)...;
insert into personinfo(id,name,age,personId) values(0, 'xiaoliao', 25, '男','510131198505101235'),(0, 'xiaozhao', 30, '女','510131198505101236');

mysql> select * from personinfo;
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name      | age  | gender | height | city   | addr                      | personId           |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
|  1 | xiaowang  |   18 | 男     | 172.00 | 成都   | 高新区合作路1111号        | 510131198605136412 |
|  2 | xiaozhang |   20 | 男     | 172.00 | NULL   | NULL                      | 510131198605136412 |
|  3 | xiaoliao  |   25 | 男     | 172.00 | 成都   | 高新区合作路1112号        | 510131198605106578 |
|  4 | xiaozhao  |   30 | 女     | 160.00 | 成都   | 双流区空港4路128号        | 510131198905101234 |
|  5 | xiaoliao  |   25 | 男     |   NULL | NULL   | NULL                      | 510131198505101235 |
|  6 | xiaozhao  |   30 | 女     |   NULL | NULL   | NULL                      | 510131198505101236 |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
6 rows in set (0.00 sec)

说明:
    主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default)
    在全列插入时,如果字段列有默认值可以使用 default 来占位

1.3 更改数据
可以看到 上面数据表格中有身份证ID 是一样的,因此可将 xiaowang的身份证ID 改变

update 表名 set 列1=值1,列2=值2... where 条件
例:
update personinfo set personId='510131198605171237' where name = 'xiaozhang' and personId = '510131198605136412';

mysql> select * from personinfo;
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name      | age  | gender | height | city   | addr                      | personId           |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
|  1 | xiaowang  |   18 | 男     | 172.00 | 成都   | 高新区合作路1111号        | 510131198605136412 |
|  2 | xiaozhang |   20 | 男     | 172.00 | NULL   | NULL                      | 510131198605171237 |
|  3 | xiaoliao  |   25 | 男     | 172.00 | 成都   | 高新区合作路1112号        | 510131198605106578 |
|  4 | xiaozhao  |   30 | 女     | 160.00 | 成都   | 双流区空港4路128号        | 510131198905101234 |
|  5 | xiaoliao  |   25 | 男     |   NULL | NULL   | NULL                      | 510131198505101235 |
|  6 | xiaozhao  |   30 | 女     |   NULL | NULL   | NULL                      | 510131198505101236 |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
6 rows in set (0.01 sec)

1.4 删除数据

delete from 表名 where 条件
例:
delete from personinfo where personId='510131198605136412';

mysql> select * from personinfo;
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
| id | name      | age  | gender | height | city   | addr                      | personId           |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
|  2 | xiaozhang |   20 | 男     | 172.00 | NULL   | NULL                      | 510131198605171237 |
|  3 | xiaoliao  |   25 | 男     | 172.00 | 成都   | 高新区合作路1112号        | 510131198605106578 |
|  4 | xiaozhao  |   30 | 女     | 160.00 | 成都   | 双流区空港4路128号        | 510131198905101234 |
|  5 | xiaoliao  |   25 | 男     |   NULL | NULL   | NULL                      | 510131198505101235 |
|  6 | xiaozhao  |   30 | 女     |   NULL | NULL   | NULL                      | 510131198505101236 |
+----+-----------+------+--------+--------+--------+---------------------------+--------------------+
5 rows in set (0.00 sec)

注意: 使用delete删除是从物理上删除,无法恢复。如果想删除的数据可以恢复,可以增加一个字段'is_del' 来标记是否已经删除,此时只是修改数据并不是真正意义上的删除

alter table personinfo add is_del bit default 0;
update personinfo set is_del =1 where personId= '510131198505101236'

二、where 条件查询
使用where条件查询可以对表中的数据进行筛选
where语句支持的运算符:
    比较运算符
    逻辑运算符
    模糊查询
    范围查询
    空判断
2.1 比较运算符
    等于: =      (注意不是==)
    大于: >
    大于等于: >=
    小于: <
    小于等于: <=
    不等于: != 或 <>
例:
    查询年龄大于25 并且小于35 所有人员信息

mysql> select * from personinfo where age >= 25 and age <=35;

查询性别为男所有人员信息

select * from personinfo where gender !='女';

2.2 逻辑运算符
        and
        or
        not

例 :

# 查询所有的男性 
select * from personinfo where not gender ='女';

2.3 模糊查询
    like是模糊查询关键字
    %表示任意多个任意字符
    _表示一个任意字符
  M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
 %M% : 表示查询包含M的所有内容。
 %M_ : 表示查询以M在倒数第二位的所有内容。

例:

#查询身份证以510131开头的所有 人员信息
select * from personinfo where personId like '510131%'

2.4 范围查询
    between .. and .. 表示在一个连续的范围内查询
    in 表示在一个非连续的范围内查询

例:

#查询年龄在 25 与 30之间
select * from personinfo where age between 25 and 30;

#查询 城市 在 重庆、成都所有人
select * from personinfo where city in ('重庆','成都');

2.5 空判断查询
    判断为空使用: is null
    判断非空使用: is not null

#查询所有地址为空的人员​​​​​​​
select * from personinfo where addr is null;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值