当创建好数据库后,就可以创建表以及相关操作
1:进入数据库(只有进入数据库后,才能进行其余操作)
语句:use 数据库名;
eg:在使用之前,已经创造了student数据库,所以此时就可以使用use语句进入数据库内部进行操作
2:创建表
语法:create table 表名(field1 datatype,field2 datatype,field3 datatype...);
可以使用comment增加字段说明;
create table 表名(field1 datatype comment'说明'.....);
eg: 创建一个学生基本信息表 (序号、学号、姓名、性别、出生日期)
此时一个学生信息表就创建好了,可以使用:show tables;来显示当前数据库中的表
接下来就可以对表进行增删改查了即CRUD操作 ,增加(create)、查询(retrieve)、更新(update)、删除(delete)。
3:增加数据:创建了(即增加)表之后,就可以对表进行增添数据了
eg:对student_information表添加数据
语句:方法一(单行数据,全列插入):INSERT INTO 表名 values(数据)//注意:数据量必须和定义表的列的数量以及顺序保持一致
方法二(多行数据,指定列插入):INSERT INTO 表名(指定列) VALUES(指定列所对应的数据),...;
eg:方式一:
方式二:
这时,就在已创建好的student_information表中添加了数据
4:查询
4.1:全列查询
语法:select * from 表名;
eg:查询学生信息表的所有数据
4.2指定列查询(指定列不需要按顺序)
语法:select 指定列 from 表名;
eg:从student_information表中查询id name sex 数据
4.3查询字段为表达式
为了方便描述,重新创建了一个学生成绩表,如下:
4.3.1 表达式不包括字段
4.3.2 表达式包括一个字段
4.3.3 表达式包括多个字段
4.4 别名:将表达式的结果置换为其他名字:这里将三门成绩的总和名字置换为sum,以sum为该结果列的名称
4.5:去重:去除一个列中重复的数据
从该表中可以看出,红孩儿的数学成绩和孙悟空的数学成绩相同,如果需要知道班级所有成绩的集合,就应该相同的成绩保留一个。
语 法:SELECT DISTINCT 指定列 FROM 表名;
去重前:
去重后:
4.6:排序
ASC为升序(从小到大)
DESC为降序(从大到小)
如果没有设置,即默认为升序ASC
降序排列
升序排列(没有设置,默认为升序ASC)
也可将各个成绩之然后换成别名,进行排序
当排序时有多个字段参与,按照排序的优先级进行排序,当数学成绩的优先级在前,但是孙悟空和红孩儿的数学成绩相同,这时就会根据后面字段的的排序顺序进行排序,所以在进行排序时,条件和优先级的选择也很重要。
还有多种排序的方式,在排序时,选择不同的条件和优先级,就会产生不同的结果,不同情况下,要根据项目要求来选择合适的排序方式。
4.7:条件查询(WHERE)
不同的条件下,显示不同的数据,就要用到条件查询,这时,条件运算符就显得格外重要
比较运算符 | 说明 |
---|---|
>,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于,null不安全,例如null = null 的结果就是null |
<=> | 等于,null安全,例如null = null 的结果就是true(1) |
!=,<> | 不等于 |
BETWEEN a0 AND a1 | 范围匹配,[a0,a1],如果a0<=value<=a1,返回true |
IN(option,…) | 如果是option中的任何一个,返回true |
IS NULL | 是NULL |
IS NOT NULL | 不是NULL |
LIKE | 模糊匹配,%表示任意多个(包括0个)任意字符;_表示任意一个字符 |
逻辑运算符 | Value |
---|---|
AND | 多个条件均为TRUE ,结果是TRUE |
OR | 任意一个条件为TRUE,结果为TRUE |
NOT | 条件为TRUE ,结果为FALSE |
注:where条件可以使用表达式,但不能使用别名
AND 的优先级高于OR
eg:
模糊匹配:任意字符;_表示任意一个字符
模糊匹配,%表示任意多个(包括0个)
4.8:分页查询(LIMIT)
起始下标为0
1:从0开始,筛选出n条结果
SELECT 指定列 FROM 表名[WHERE...][ORDER BY...] LIMIT n;
2:从i开始,筛选出n条结果
SELECT 指定列 FROM 表名 [WHERE...][ORDER BY...] LIMIT i, n;
3:从i开始,筛选出n条结果(比第二种用法更明确)
SELECT 指定列 FROM 表名 [WHERE...][ORDER BY...] LIMIT n OFFSET i;
1:从0开始,筛选出n条结果
2:从i开始,筛选出n条结果
3:从i开始,筛选出n条结果
5:修改
UPDATE 表名 SET column = expr [,column = expr ...][ WHERE.... ] [ORDER BY... ] [LIMIT ...]
修改后:
6:删除
此时孙悟空就从表中删除了