插入数据
插入一条数据:
1)insert into 表名(字段名1,字段名2,字段名3…) values(值1,值2,值3…);
2)insert into 表名 values(字段1的值,字段2的值,字段3的值…); 【这种形式要求 values 必须有所有字段】
插入多条数据:
insert into 表名(字段1,字段2,字段3…) values(值1,值2,值3…),(值1,值2,值3…),(值1,值2,值3…);
补充:
1、修改创建好的表字段:
alter table 表名 change 原字段名 新字段名 字段类型 字段属性(约束);
举例:alter table stu change email email varchar(60) not null;
2、添加新的字段:
alter table 表名 add 字段名 字段类型 字段属性(约束);
举例:alter table stu add height float(3,2);
(after 是加在某个字段之后;)
3、修改表名:
alter table 旧表名 rename to 新表名;
举例:alter table stu rename to student;
4、查看创建表字段的代码:
show create table 表名;
主键相关操作
创建表时添加主键:
create table test( id int primary key auto_increment not null, name varchar(30), );
创建表后修改主键:
alter table 表名 change 原字段名【即要设为主键的字段】 新字段名 int primary key auto_increment not null;
复合主键:
create table test( id int auto_increment not null, name varchar(30), primary key(id,name) );
删除主键:
alter table 表名 drop 主键字段名;
删除及修改数据
删除及修改数据:
delete from 表名 where 【条件】
特别强调:在删除数据时,一定要确认要删除哪些内容。
delete from 表名,会删除整个表里的数据。
```
MariaDB [employe]> select * from department;
+----+--------+-----------------+--------+------+------------+--------+--------+
| id | dep | master | amount | kpi | foundation | groups | status |
+----+--------+-----------------+--------+------+------------+--------+--------+
| 1 | 教务 | 张三丰 | 8 | 9.99 | 2019-01-20 | 总部 | 1 |
| 2 | 教务 | 张四丰 | 8 | 9.99 | 2019-02-20 | 总部 | 1 |
| 3 | 教务 | 张五丰 | 8 | 9.99 | 2019-03-20 | 总部 | 1 |
| 6 | 教务 | 张六丰 | 8 | 9.99 | 2019-04-20 | 总部 | 1 |
| 7 | 学生处 | 黄山 | 10 | 8.00 | 2019-04-01 | | 2 |
| 8 | 学生处 | 黄玉石 | 10 | 8.00 | 2019-04-01 | | 2 |
| 9 | 学生处 | 黄尼古拉斯*赵四 | 10 | 8.00 | 2019-04-01 | | 2 |
+----+--------+-----------------+--------+------+------------+--------+--------+
7 rows in set (0.00 sec)
MariaDB [employe]> delete from department where id=2;
Query OK, 1 row affected (0.01 sec)
MariaDB [employe]> select * from department;
+----+--------+-----------------+--------+------+------------+--------+--------+
| id | dep | master | amount | kpi | foundation | groups | status |
+----+--------+-----------------+--------+------+------------+--------+--------+
| 1 | 教务 | 张三丰 | 8 | 9.99 | 2019-01-20 | 总部 | 1 |
| 3 | 教务 | 张五丰 | 8 | 9.99 | 2019-03-20 | 总部 | 1 |
| 6 | 教务 | 张六丰 | 8 | 9.99 | 2019-04-20 | 总部 | 1 |
| 7 | 学生处 | 黄山 | 10 | 8.00 | 2019-04-01 | | 2 |
| 8 | 学生处 | 黄玉石 | 10 | 8.00 | 2019-04-01 | | 2 |
| 9 | 学生处 | 黄尼古拉斯*赵四 | 10 | 8.00 | 2019-04-01 | | 2 |
+----+--------+-----------------+--------+------+------------+--------+--------+
6 rows in set (0.00 sec)
```
修改记录:
update 表名 set 字段名1=要修改值1,字段名2=要修改值2 where [条件]
3.4 查询数据
select 字段名/* from 表名;
条件查询
比较运算符查询:< > <= >= != =
逻辑运算符:and or not
范围查询:between … and … 在…之间 【区间】(select * from 表名 where 字段名 between 开始日期(‘2019-04-01’) and 结束日期 ‘2019-05-01’)
in 在…里【点的选择】
not in 不在…里【点的选择】
模糊查询:like % / _
空判断:is null
排序及分页
分页:limit (n-1) * m, m
解释:n 是第几页,m 是每页显示几条数据
举例:
第三页,每页显示2条数据
(3-1)*2,2
4,2
第二页,每页显示5条数据
(2-1)*5,5
5, 5
第二页,每页显示4条数据
(2-1)*4,4
4,4
排序:
select * from 表名 order by 字段名 asc(升序)|desc(降序);
多字段排序:
select * from 表名 order by 字段名1 desc,字段名2 desc;
注意:多字段排序时,会先按第一字段排序,第一字段相同时,再按第二字段排序。
分组
分组 group by
select 字段名 from 表名 group by 分组字段;
分组 group by + group_concat()