1 :增加 Create
新建一个新的数据库里面的数据肯定都是空的,因此也没有表;
1、创建表
使用以下语法进行表的创建:
create table tablename
(
属性 1 类型 1 comment '备注',
属性 2 类型 2 comment '备注',
属性 3 类型 3 comment '备注'
);
-- 注意 这里的comment 是用于添加注释为了方便数据的理解 最后一行不需要以 “ , ” 结尾 其余均需要 逗号结尾 最后的括号后要有 “ ; ” 作为结尾。
例如:
这时候我们再来查一下数据库中的表:
2、插入数据
表创建好了接下来就是插入数据了,使用以下的基本语法:
(1)单行数据插入
insert into tablename values(value1,value2,valueN);
例如:
然后我们在查询一下表里的数据:
(2)多行数据指定列插入
语法:
insert into tablename (属性1, 属性2, 属性n) values
(value1, value2, valueN),
------------------------
(value2, value2, valueN);
例如:
再来查看一下表里的数据:
可以看到这种多行数据插入也是可以插入的
注意: 再插入的时候数据应该按照表中的属性的顺序进行插入,当然也可以指定的插入如
否则就会
2 :查询 Retrieve
查询的基本语法就是
select 属性1|属性 2 from tablename 条件或特定情况
(1) 查询全部数据
select* from tablename;
(2)指定列查询
select 列1(属性1),列2(属性2) from tablename
例如:
(3)查询字段为表达
例如:查询所有同学的总分
select 表达式 from tablename;
(4)别名
上述讲了查询表达式的方法,之所以是表达式是因为,表里的单一的属性不能够满足需求,因此有了表达式,当然我们也可以给这些表达式加上别名就行备注一样更加的清晰易懂。
语法:
select 表达式 备注(别名) from tablename;
例如:查询各个学生的总分
(5)去重 DISTINCT
当想要对某一列的数据进行去重查询时可以使用 distinct
语法:
select 属性(列) distinct from table;
例如:
(6)排序 ORDER BY
当想要对表中的某一列数据进行排序查询时使用 order by
语法:
select 属性1,属性2 from where order by column;
例如:
可以看到 语文成绩是有序的 默认升序,当需要降序时 使用 语法:
select 属性 1,属性 2 from tablename order by column desc;
例如:
当然也可以使用上面学习的表达式和别名进行排序,例如:
select id,name,Chinese+Math+PE total from grade order by total [desc];
(7)条件查询:WHERE
其实我们在上面已经使用了 where 进行一些特定的查询 这是因为 其实 select * from table 一次查询所有的数据是非常的缓慢的当数据非常大的时候,且数据又不是我们所需的时候就会比较的耗时还费力,比如我们想要查询某一个人的信息时 只需要查询该学生的学号就可以了 例如:
select id,name,Chinese,Math,PE from grade where id=10002;
注意 这里 where 可以使用表达式 但是不能使用别名
这里就涉及到了很多的运算符总结为下:
比较运算符
运算符 | 说明 |
---|---|
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
BETWEEN a0 AND a1 | 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1) |
IN (option, …) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符 |
例如:
逻辑运算符
运算符 | 说明 |
---|---|
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1) |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
例如:
(8)分页查询:LIMIT
语法:
-- 起始下标为 0
-- 从 0 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n; -- 从 s 开始,筛选 n 条结果 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用 SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s
例如:
3 :更新 Update
语法:
UPDATE table_name SET column = expr [, column = expr ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
例如:
4 :删除 Delete
语法:
DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
例如:
删除表里的所有数据:
delete from tablename;
例如:
另外删除整个表的语法是:
drop table tablename;