SQL的英文(Structured Query Language)
sql语言:结构化的查询语言。
它是一种解释语言:写一句执行一句,不需要整体编译执行
一、语法特点:
1.没有“ ”,字符串使用‘ '包含
2.没有逻辑相等,赋值和逻辑相等都是=
3.类型不再是最严格的。任何数据都可以包含在‘ '以内
4.没有bool值的概念,但是在视图中可以输入true/false
5.它也有关系运算符:> < >= <= = <> != ,它返回一个bool值
6.它也有逻辑运算符: !(not) &&(and) ||(or)
7.它不区别大小写
二、使用sql语句创建数据表
创建数据表
语法:
create table 表名
(
字段名称 字段类型 字段特征(是否为null,默认值 标识列 主键 唯一键 外键 check约束),
字段名称 字段类型 字段特征(是否为null,默认值 标识列 主键 唯一键 外键 check约束)
)
删除数据表
语法:
drop table 表明
三、数据完整性约束
实体完整性:实体就是指一条记录。这种完整性就是为了保证每一条记录不是重复记录。是有意义的
主键:非空和唯一.一个表只有一个主键,但是一个主键可以是由多个字段组成的 组合键
标识列:系统自动生成,永远不重复
唯一键:唯一,但是可以为null,只能null一次
域完整性:域就是指字段,它是为了保证字段的值是准和有效,合理值
类型 是否null,默认值,check约束,关系
自定义完整性:
check约束 , 存储过程 触发器
引用完整性:一个表的某个字段的值是引用自另外一个表的某个字段的值。引用的表就是外键表,被引用的表就是主键表
1.建立引用的字段类型必须一致
2.建立引用的字段的意义一样
3.建立主外键关系的时候选择 外键表 去建立主外键关系
4.建立主外键关系的字段在主表中必须是主键或者唯一键
四、增,删,改,查
数据插入
语法:
insert into 表名([字段列表]) values(值列表) --数据必须要符合数据完整性
数据删除:
语法:
delete [from] 表名 where 条件
数据检索--查询
语法:
select */字段名称列表 from 表列表
数据更新(数据修改):一定需要考虑是否有条件
语法:
update 表名 set 字段=值,字段=值(要改的内容) 。。where 条件
查询的字段改名字
语法:
select 字段1(as)别名1,字段2(as)别名2....form表名where 条件
查询和修改字段名
语法:
select 字段名 数值 from 表名
五、聚合函数
1.对null过滤
2.都需要有一个参数
3.都是返回一个数值
分组函数:(不能直接放在where后面)
1、sum():求和:只能对数值而言,对字符串和日期无效
2、avg():求平均值
3、count():计数:得到满足条件的记录数
4、max():求最大值:可以对任意类型的数据进行聚合,如果是字符串就比较拼音字母进行排序
5、min():求最小值
语法:
select 聚合函数(数值)from 表名
ag:SELECT ename,sal FROM emp WHERE sal>(SELECT AVG(sal) FROM emp) ORDER BY sal
带条件的查询-模糊查询(只针对字符串而言)
=是一种精确查询,需要完全匹配
八、通配符--元字符
and,not,or:
%:表示0个或多个字符
_:表示一个字符
[]:代表一个指定的范围,范围可以是连续也可以是间断的。与正则表达式完全一样[0-9a-zA-Z].可以从这个范围中取一个字符
[^]:取反值
通配符必须在模糊查询关键的中才可以做为通配符使用,否则就是普通字符
like ,not like,%:表示0个或多个字符;
null:不是地址没有分配,而是不知道你需要存储什么值 所以null是指 不知道。但是=只能匹配具体的值,而null根本就不是一个值
语法:
select * from 表名 where 字段名 like ‘通配符’;
ag:SELECT * FROM User WHERE name LIKE '%峰'
六、事务
一种处理机制。以事务处理的操作,要么都能成功执行,要么都不执行。
事务的四个特点 ACID:
A:原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。它是一个整体,不能再拆分
C:一致性:事务在完成时,必须使所有的数据都保持一致状态。。某种程度的一致
I:隔离性:事务中隔离,每一个事务是单独的请求将单独的处理,与其它事务没有关系,互不影响
D:持久性:如果事务一旦提交,就对数据的修改永久保留
七、distinct关键字:
用distinct关键字来消除结果集中的重复信息,只显示一行。
语法:
select distinct*from 表名
当distinct用来修饰多个字段的时候,字段重复的只显示一行。
语法:
select distinct 字段 (as)别名1,字段 (as)别名2 from 表名
where条件
1、条件比较:
符号:> < >= <= = <> != ,any(任意一个),some(任意一个),all(所有的)
is null(空);is not null(非空)
查询排序:
asc(升) desc(降) 只作用前面的一个字段
order by 字段名(asc)
语法:
SELECT * FROM EMP ORDER BY deptno DESC,sal DESC
常用函数:
1、lower:把字段转换成小写;
2、upper:把字段转换成大写;
3、concat:连接两个字符串;
4、length:求字段的长度;
5、substr:把字段转换成大写,start从1开始,截取的长度
ag:SELECT ename,SUBSTR(ename FROM 2 FOR 1)FROM emp
6、round(round,n):n指定四舍五入到小数点后面第几位,可以用负数指定到小数点前几位;
7、to_number:把字符串换成数字;
8、to_date:把字符串转换成数据库内部的日期格式;
注意:
子查询:就是内部查询
sql语言:结构化的查询语言。
它是一种解释语言:写一句执行一句,不需要整体编译执行
一、语法特点:
1.没有“ ”,字符串使用‘ '包含
2.没有逻辑相等,赋值和逻辑相等都是=
3.类型不再是最严格的。任何数据都可以包含在‘ '以内
4.没有bool值的概念,但是在视图中可以输入true/false
5.它也有关系运算符:> < >= <= = <> != ,它返回一个bool值
6.它也有逻辑运算符: !(not) &&(and) ||(or)
7.它不区别大小写
二、使用sql语句创建数据表
创建数据表
语法:
create table 表名
(
字段名称 字段类型 字段特征(是否为null,默认值 标识列 主键 唯一键 外键 check约束),
字段名称 字段类型 字段特征(是否为null,默认值 标识列 主键 唯一键 外键 check约束)
)
删除数据表
语法:
drop table 表明
三、数据完整性约束
实体完整性:实体就是指一条记录。这种完整性就是为了保证每一条记录不是重复记录。是有意义的
主键:非空和唯一.一个表只有一个主键,但是一个主键可以是由多个字段组成的 组合键
标识列:系统自动生成,永远不重复
唯一键:唯一,但是可以为null,只能null一次
域完整性:域就是指字段,它是为了保证字段的值是准和有效,合理值
类型 是否null,默认值,check约束,关系
自定义完整性:
check约束 , 存储过程 触发器
引用完整性:一个表的某个字段的值是引用自另外一个表的某个字段的值。引用的表就是外键表,被引用的表就是主键表
1.建立引用的字段类型必须一致
2.建立引用的字段的意义一样
3.建立主外键关系的时候选择 外键表 去建立主外键关系
4.建立主外键关系的字段在主表中必须是主键或者唯一键
四、增,删,改,查
数据插入
语法:
insert into 表名([字段列表]) values(值列表) --数据必须要符合数据完整性
数据删除:
语法:
delete [from] 表名 where 条件
数据检索--查询
语法:
select */字段名称列表 from 表列表
数据更新(数据修改):一定需要考虑是否有条件
语法:
update 表名 set 字段=值,字段=值(要改的内容) 。。where 条件
查询的字段改名字
语法:
select 字段1(as)别名1,字段2(as)别名2....form表名where 条件
查询和修改字段名
语法:
select 字段名 数值 from 表名
五、聚合函数
1.对null过滤
2.都需要有一个参数
3.都是返回一个数值
分组函数:(不能直接放在where后面)
1、sum():求和:只能对数值而言,对字符串和日期无效
2、avg():求平均值
3、count():计数:得到满足条件的记录数
4、max():求最大值:可以对任意类型的数据进行聚合,如果是字符串就比较拼音字母进行排序
5、min():求最小值
语法:
select 聚合函数(数值)from 表名
ag:SELECT ename,sal FROM emp WHERE sal>(SELECT AVG(sal) FROM emp) ORDER BY sal
带条件的查询-模糊查询(只针对字符串而言)
=是一种精确查询,需要完全匹配
八、通配符--元字符
and,not,or:
%:表示0个或多个字符
_:表示一个字符
[]:代表一个指定的范围,范围可以是连续也可以是间断的。与正则表达式完全一样[0-9a-zA-Z].可以从这个范围中取一个字符
[^]:取反值
通配符必须在模糊查询关键的中才可以做为通配符使用,否则就是普通字符
like ,not like,%:表示0个或多个字符;
null:不是地址没有分配,而是不知道你需要存储什么值 所以null是指 不知道。但是=只能匹配具体的值,而null根本就不是一个值
语法:
select * from 表名 where 字段名 like ‘通配符’;
ag:SELECT * FROM User WHERE name LIKE '%峰'
六、事务
一种处理机制。以事务处理的操作,要么都能成功执行,要么都不执行。
事务的四个特点 ACID:
A:原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。它是一个整体,不能再拆分
C:一致性:事务在完成时,必须使所有的数据都保持一致状态。。某种程度的一致
I:隔离性:事务中隔离,每一个事务是单独的请求将单独的处理,与其它事务没有关系,互不影响
D:持久性:如果事务一旦提交,就对数据的修改永久保留
七、distinct关键字:
用distinct关键字来消除结果集中的重复信息,只显示一行。
语法:
select distinct*from 表名
当distinct用来修饰多个字段的时候,字段重复的只显示一行。
语法:
select distinct 字段 (as)别名1,字段 (as)别名2 from 表名
where条件
1、条件比较:
符号:> < >= <= = <> != ,any(任意一个),some(任意一个),all(所有的)
is null(空);is not null(非空)
查询排序:
asc(升) desc(降) 只作用前面的一个字段
order by 字段名(asc)
语法:
SELECT * FROM EMP ORDER BY deptno DESC,sal DESC
常用函数:
1、lower:把字段转换成小写;
2、upper:把字段转换成大写;
3、concat:连接两个字符串;
4、length:求字段的长度;
5、substr:把字段转换成大写,start从1开始,截取的长度
ag:SELECT ename,SUBSTR(ename FROM 2 FOR 1)FROM emp
6、round(round,n):n指定四舍五入到小数点后面第几位,可以用负数指定到小数点前几位;
7、to_number:把字符串换成数字;
8、to_date:把字符串转换成数据库内部的日期格式;
注意:
子查询:就是内部查询