3.数据管理
数据库管理对数据进行增删改查(重点)
1.SQL
-
概念:
结构化查询语言,主要用于应用程序向数据库发送增删改查的命令,以操作数据库表中的数据
-
T-SQL =Transact-SQL
T-SQL是SQL的加强版,对功能进行了扩充:如变量说明、流程控制、功能函数
-
SQL的基本语句:分别完成数据定义。数据操作。数据控制
-
-
T-SQL的组成
-
DML(数据操作语言)
-
查询、插入、删除和修改数据库中的数据
-
select、insert、 update、delete等;
-
-
DCL(数据控制语言)
-
用来控制存取许可、存取权限等
-
grant、revoke等;
-
-
DDL(数据定义语言)
-
用来建立数据库、数据库对象和定义其列
-
create table、drop table等
-
-
变量说明、流程控制、功能函数
-
定义变量、判断、分支、循环结构等
-
日期函数、数学函数、字符函数、系统函数等
-
-
-
T-SQL中的运算符
运算符 含义 = 等于 > 大于 < 小于 >= 大于或等于 <= 小于或等于 <> 不等于 ! 非(Java语言中为not) -
逻辑表达式
逻辑表达式 说明 示例 and 逻辑与 1 and 1 = 1; 1 and 0 = 0; 0 and 0 = 0; or 逻辑或 1 or 1 = 1; 1 or 0 = 1; 0 or 0 = 0; not 逻辑非 not 1 = 0; not 0 = 1; -
运算符
-
and/&&:并且;
-
or/||:或者;
-
not/!:非。
-
in(...):在某个范围内;
-
not in:不在某个范围内。
-
is null:字段值是null(系统默认null,手写null无法识别);
-
is not null:字段值不是null(系统默认null,手写null无法识别);
-
between...and:在某个范围之内(含最小、最大值);
-
2.增加
-
插入数据
-
增加单条数据:insert into 表名(列1,列2,...,列N) values(值1,值2,...,值N)
-
批量增加:
语法1: insert into 表名(列1,列2,...,列N) values(值1,值2,...,值N), (值1,值2,...,值N), ...... (值1,值2,...,值N); 语法2: insert into 表名(列1,列2,...,列N) select 值1,值2,...,值N union, select 值1,值2,...,值N union, ..................... select 值1,值2,...,值N;
-
注意事项:
-
-
在插入数据的时候,如果插入的数据是所有列的数据,那么列名则可以省略不写(建议不省略)。
-
插入的数据个数必须和列名的个数及顺序形成一一对应的关系且数据类型要匹配,标识列不能维护。
-
对于允许为空的字段,可以使用null关键字进行插入。
-
-
-
一次插入多行数据,可以使用union关键字来实现
3.删除
-
删除表内所有数据
delete from 表名
-
通过条件删除数据
delete from 表名 where 删除条件
-
使用delete删除数据,不能删除主键值被引用的数据行。
4.修改
-
全表修改
update 表名 set 列名 =更新值
-
条件修改
update 表名 set 列名 =更新值 where 条件
-
使用update更新数据,一般都有条件限制
5.查询
5.1基础查询
-
查询表内所有的数据 * 表示表内所有的字段都查询出来
select * from 表名
-
查询表内部分字段 (查询多个列的话,列名和列名之间用逗号隔开)
select 字段1,字段2 from 表名
-
条件查询
-
在sql中,where用来限制条件,之后紧跟条件语句。
语法1 select * from 表名 where 列名+运算符 /逻辑表达式+值(根据条件查询) 语法2 select 字段1,字段2 from 表名 where 列名+运算符 /逻辑表达式+值(根据条件查询)
5.2模糊查询
-
模糊查询也属于条件查询 ,不过要带有like关键字和通配符
-
通配符
通配符 解释 示例 ‘_’ 一个字符 A Like 'C_' % 任意长度的字符串 B Like 'CO_%' [ ] 括号中所指定范围内的一个字符 C Like '9W0[1-2]' [^] 不在括号中所指定范围内的一个字符 D Like ‘%A-D' -
1、一般配合Like关键字使用 2、适用于字符类型的字段 3、可以用在检查约束中使用Like
-
-
模糊查询
select * from 表名 where 查询条件
-
案例
-
查询名字带有‘佳’的学生信息
select * from t_student where name like '%佳%'
-
查询名字以‘佳’结尾的学生信息
select * from t_student where name like '%佳'
-
也可以使用left、right来查询
-
letf:取左边的指定字符
-
right:取右边的指定字符
select * from t_student where left(name,1)='佳'
-
-
6.排序
6.1 升序
-
升序:asc (默认)
selct * from 表名 order by 条件(字段) asc
6.2 降序
-
降序:desc
select * from 表名 order by 条件(字段) desc
7.关键字
-
distinct (去重)
-
作用:去除重复项,相同值只显示一个
select distinct 字段1 from 表名
-
-
limit (限制、限量、边界)
-
作用一 :取前N条数据
-
取前N条数据
select * from 表名 limit 数值
-
案例:查询前3条同学信息
select * from t_stundet limit 3
-
查询年龄最大的3位同学信息
select * from t_student order by age desc limit3
-
-
作用二: 分页
-
就是相当于课本 或者百度的网页 为了方便阅读 每一页的内容不会很多 但是后一页的内容要跟前一个内容有关联
select * from 表名 limit a,b
-
a:表示每一页开始条数的上一条数据
-
b:代表页大小(每页最多展示的淑君量)
-
-
案例:
第一页:select * from 表名 limit 0,5 第二页:select * from 表名 limit 5,5 第三页:select * from 表名 limit 10,5
-
-