一、SQL的语法规则
1.SQL语句以分号(;)为结尾;
2.不区分大小写;
3.注释:单行注释:-----(减号)或者#,多行注释:/**/;
二、数据库分类
2.1关系型数据库(RDMBS)
是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
2.2非关系型数据库(NRMDBS)
不规定基于SQL实现,现在更多指向NoSQL数据库;
三、数据库的操作
3.1数据库的创建
create database 数据库名 charset utf8mb4(utf8);
charset指设置数据库的字符集,每次创建数据库,手动指定字符集类型。
3.2数据表的创建
1) 创建表(首先选中数据库) create table 表名(列名 类型,列名 类型,列名 类型....);
创建表的时候,首先要指定使用的数据库,use csdn;
2)查看所有表 show tables;
3)查看指定表结构 desc 表名;
4)删除表 drop table 表名;
3.数据类型:数字 int(工作中用来存放钱的数据类型,单位为分),double(M,N),decimal(M,N) ,指定有效长度(包含整数位数和小数位数的长度)和小数位数
字符串 varchar(N) text
4.时间日期 datetime
3.3 数据库的增删查改
3.3.1插入数据
1)插入单行数据
insert into test values(1,'zhangsan');
插入数据需要保证:数据列数和类型匹配;
2)单次插入多行数据
insert into test values(2,'李四'),(3,'王五');
3.3.2查看表的内容(查询)
1)查询表里的所有列的数据
select*from 表名; *称为通配符,代表了所有的列;
select * from test;
2)指定列查询
查询单行列:select 列名 from 表名;
查询多行列:select 列名,列名 from 表名;
3)查询时排序:order by子句
asc为升序(从小到大) 升序ascend(默认为ASC)
desc 为降序(从大到小) 降序descend
4)条件查询:针对查询结果,按照一定的条件进行筛选;where
比较运算符:
运算符 | 说明 |
>,>=, | 大于,大于等于,小于,小于等于 |
= | 等于,null判断时不安全,null=null的结果为null |
<=> | 等于,null安全,例如nullnull的结果为true(1) 针对空值,特殊处理 |
!=,<> | 不等于 |
between a0 and a1 | 范围匹配,[a0,a1],如果a0 |
in(optiong,....) | 如果是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) |
查询语言成绩小于60的
select name,english from exam_result where english<60;
5)分页查询
限制查询结果:select *from exam_result limit 5;
在查询语句的末尾,加上limit N,N代表限制的语句数量,总共查询结果的语句数量;
分页:将查询结果分页显示
select * from exam_result limit 5 offset 5; offset表示从第几个开始查询;
3.3.3修改(update) 修改的服务器数据
1)update 表名 set 列名=值 where 条件;
例:update exam_result set math=70 where name='孙悟空';
2)update 可以修改多个列
update exam_result set chinese =0,math=0, english=0 where name='孙';
3)设置不同的筛选条件
null为最小的数值,比0和负数小;
3.3.4 删除 delete(危险操作)
1)格式:
delete from 表名 where 条件; 同update,可以支持where order by limit;
部分操作SQL语句风格:insert into 表名; select from 表名; update 表名; delete from 表名;