SQL语言

SQL语言

一、sql简介

​ 数据存放在数据库中,SQL是用于访问和处理数据库的标准语言,SQL是:Structured Query Language 的缩写,是指结构化查询语言。

​ 特点: 简单易学、功能强大、只说明要做什么,不说明如何做、标准化,几乎所有的关系型数据库都通用、不区分大小写。

二、创建表

1、部门表

部门编号(deptno)部门名称(dname)部门所在位置(location)
1技术部一楼A区
2销售部二楼A区
3行政部一楼B区

每行对应一个记录,每列对应记录中的一个字段。

#int 整型

#primary 主键

#varchar(9)定义可变字符串长度为9

create table dept(

​ deptno int primary key,

​ dname varchar(9),

​ loc varchar(10));

2、创建员工表

员工号(empno)姓名(name)部门(deptno)经理(manager)入职时间(hiredate)薪水(salary)
1张三122022-03-034400.00

#char(10) not null 输入字符位数10,not null输入的内容不能为空值

#numeric(7,2)总长度七位,精确两位小数

create table employees(

empno in primary key ,

name char(10) no null,

deptno int,

manager int,

hiredate date,

salary numeric(7,2));

3、创建经理表

员工号(empno)头衔(title)
2技术部经理
4销售部经理
5行政部经理
99总裁

create table managers(

empno int primary key,

title varchar(16));

三、常用的数据类型

数据类型说明
int整数类型
char(n)字符/字符串,固定长度n
varchar(n)字符/字符串,可变长度,最大长度n。
numeric(a,b)精确数值,总位数a,小数点后位数。
date存储年、月、日的值

四、insert 插入数据用法

​ insert 语句用于向表中插入新记录,它有两种写法:

第一种写法:为表中的所有字段添加值时不需要字段名称,但要确保值得顺序与表中的字段顺序相同,语句如下:

insert into 表名 values (字段1的值,字段2的值,字段3的值。。。。。);

第二种写法:为指定的字段插入数据时,要把字段名和字段值都列出,并一一对应,

语句如下:

insert into 表名(字段1,字段2,字段3.。。。。。)values (字段1的值,字段2的值,字段3的值。。。。。);

五、主键的作用

主键的全称是主键约束,表的主键由表中的一个字段或多字段组成,主键唯一代表表中一条记录,关系型数据库中通常每个表都有一个主键,没有主键的表通常是不严谨的设计的产物。

主键由一下特点:

每个表只能定义一个主键。

主键值必须唯一标识表中的每一记录,且不能为null,即表中不可能存在有相同主键值得两条记录。

一个字段名只能在联合主键字段中出现一次。

联合主键不能包含不必要的多余字段。当把联合主键的某一字段删除后,剩下的字段不能唯一代表一条记录。

主键具有唯一性。主键所在的列值不能重复。如果在主键字段插入字段内存在的值,就会报错。违反主键约束。

六、SELECT查询

select 的两种用法

查询表中所有的字段:

select * from 表名;

查询表中指定的字段:

select 字段1,字段2 from 表名;

七、distinct 去重复值

distinct的用法

同一字段中可能会出现重复值,使用关键词distnct可以去掉重复值,用法如下:

select distinct 字段名 from 表名;

八、where条件过滤

where的用法

如果需要从表中选取指定的数据,可将where子句添加到select语句,语法如下:

select 字段名 from 表名 where 字段名 运算符值;

运算符说明
=等于
<> 或!=不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内(比如年龄8-18岁)
LIKE搜索匹配的字符串模式

九、and和or的用法

and和or的用法

and和or可以用在where子句中把两个或者多个条件结合起来。and运算符要求两个条件都成立;or运算符要求两个条件中只要一个成立即可。语法如下:

select 字段名 from 表名 where 字段n 运算符 值n and|or 字段M 运算符 值m;

十、like搜索匹配的字符串

like的用法

在where子句中使用like运算符来搜索匹配字符串中的指定模式,百分号(%)匹配零个、一个或者多个字符。语法如下:

select 字段名 from 表名 where 字段 like 字符串;

十一、in匹配多个值

in的用法

in运算符是在where子句中指定多个搜索条件可以匹配的值。in运算符实际是多个or条件的合并。

语法如下:

select 字段名 from 表名 where 字段名 in (值1,值2,…);

十二、between指定范围

between的用法

between运算符用于选取介于两个值之间的数据范围内的值,这些值可以使数字,字符串或日期。between运算符包括和结束值,相当于>= and <=.

语法如下:

select 字段名 from 表名 where 字段名 between 值1 and 值2;

十三、order by 排序

用法

order by 用于对结果集进行排序,默认按升序(asc)进行排序,也可以指定desc降序对结果进行排序。

语法如下:

select 字段名 from 表名 order by 字段1,字段2,。。。asc|desc;

十四、update更新数据

用法

update 语法用于更新表中的记录。语法如下:

update 表名 set 字段名1=值1,字段2=值2,…where字段;

注意:where子句指定那些记录需要更新。如果省略where子句,表中的所有记录都将更新!

十五、delete删除记录

delete的用法

delete语句用于删除表中的记录。语法如下:

delete from 表名 where子句;

注意:where子句指定那些记录需要删除。如果省略where子句,表中的所有记录都将删除!

十六、index索引

index的用法

索引可以提高访问数据的速度。创建索引的语法如下:

create index 索引名 on 表名(字段1,字段2,…)

使用索引时sql语句的语法和不使用索引并没有任何不同,sql语句会自动使用索引提高访问数据的速度。

十七、view视图

view的用法

视图是基于sql语句的结果集的可视化表,视图中的字段就是来自一个或者多个数据库中真实表中的字段。

视图总是显示当前的数据。每当用户查询视图时,数据库引擎通过使用sql语句来重新建数据。

创建视图的语法:

create view 视图名 as select语句;

修改视图数据底层的表数据也会修改。

十八、null值

用法

null值代表遗漏的未知数据,它的作用是未知的或不适用的值得占位符。

如果表中的某个列是可选的,那么我们可以在不向该列添加值得情况下插入新纪录或更新已有的记录。这意味着该字段将以null值保存。

字段值是否是null的判断不能用=或者<>进行,要用 is null 或者is not null进行。

语法:select * from 表名 where 字段名 is not null;

十九、字段和表的别名

作用

在SQL语句中可以为表名或字段名临时使用的别名(alias),别名只在当前的sql语句中生效,它通常比字段名更具有可读性。

别名有以下应用场景:

-字段名长或可读性差时

-涉及多个表,而且多个表中有相同字段名时

-代表查询函数的结果

别名的语句:

select 字段名 as 别名 from 表名 as 别名;4

as可以省略。

二十、join连接

作用

join 连接是基于多个表之间的共同字段把它们结合起来进行查询的一种方法。连接分为以下几种:

内连接 (inner join): 列出两个表中都存在的记录

左连接(left join):即使没有匹配也列出左表中的所有记录

右连接(right join):即使没有匹配也列出右表中的所有记录

select 字段名 as from 表1 join 表2 where 子句;

二十一、join连接

作用

join连接是基于多个表之间的共同字段把它们结合起来进行查询的一种方法。连接分为以下几种:

内连接(inner join) :列出连个表中都存在的记录

左连接(left join) :即使没有匹配也列出左表中的所有记录

右连接(right join):即使没有匹配也列出右表中的所有记录

语法:

select 字段名 as from 表1 join 表2 where 子句;

二十二、subquery子查询

用法

子查询也称嵌套查询,是一种 嵌套在其他sql语句的where子句中的查询。子查询用于为朱查询返回其所需的数据,或者对检索数据进行进一步的限制。

语法如下:

select 字段1 ,字段2, from 表名 where 字段名 操作符(子查询);

二十三、常用函数

count函数

count函数 统计符合条件的记录数,count(*)统计表中的记录总数,count(字段名)统计指定字段不为null的记录数。

下面的sql语句统计员工表中的所有员工:

select count(*) from 表名;

max函数

max函数返回所选字段的最大值,用法是max(字段名)。

min函数

min函数返回所选字符的最大值,用法是min(字段名)。

avg函数

avg函数返回所选字段的平均值,用法是avg(字段名)。

sum函数

sum函数返回所选字段合计值,用法是sum(字段名)。

二十四、group by 分组

用法

group by 语句用于结合统计函数,根据一个或者多个列对结果集进行分组。

语法人如:

select 字段名,统计函数from 表名 where子句 group by 字段名;

二十五、having过滤分组

用法

having子句和where子句类似,都是对查询结果进行过滤。它们的过滤对象不同,

where子句对呗选择的列进行过滤,而having子句则对group by 子句所产生的组进行过滤

语法如下:

select 字段名,统计函数 from 表名 where 子句 gtroup by 字段名 having 统计函数 运算符 值;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值