SQL语言知识点整理

什么是SQL

Sql是访问和处理数据库的标准计算机语言。
SQL特点:结构化查询语言,访问数据库,ANSI标准计算机语言,对大小写不敏感

Sql语言可以分为DML(数据操作语言)和DDL(数据定义语言)。
DML包括
select update delete insert into
DDL 包括
create database /alter database/create table/alter table/drop table/create index/drop index等。

常见语法

查询

Select distinct 列名 from 表名 where (运算符值,AND/OR连接) order by 列名 [DESC]

解释:distinct 去掉重复条目
[DESC] 按指定的列名降序,没有默认为升序。

插入新行

Insert into 表名 values(值1,值2,…)
Insert into 表名 (列1,列2,…)values(值1,值2,…)

更新指定行

Update 表名 set 列名=新值(可以有多个)where 列名=某值

删除指定行

Delete from 表名 where 列名 = 值

删除所有行

Delete * from 表名

子句

TOP子句

规定要返回的记录数组

Select top 2 * from 表名  

返回前两个记录

Select top 50 percent * from 表名  

返回前50%的 记录
MYSQL特定语法:

select 列名 from 表名 limit 2

Like子句

用于在where子句中搜索列中指定模式

Select *from 表名 where 列名 [not] like (‘ ’) 

可以使用通配符 %(多个字符),_(单个字符),[charlist],[!charlist].

In子句

允许在where子句中规定多个值

Select 列名 from 表名 where 列名 in (value1, value2, …)

Between子句

在where子句中选取介于两个值之间的数据

Select 列名 from 表名 where 列名 [NOT] between value1 and value2 

注意是左闭右开区间

别名

Select 列名 from 表名 as 表别名
Select 列名 as 列别名 from 表名

列名 as 列别名 可能有多个,使用逗号隔开

Join子句

可以从多个表中取结果
不适用join

Select A表.列 B表.列 from A表,B表 where A表.列=B表.列

使用join

Select A表.列 B表.列 from A表 inner join B表 ON A表.列=B表.列

Left join:会从左表返回所有行,即使右表没有匹配行
Right join:会从右表返回所有行,即使左表没有匹配行
Full join:只要某个表中有匹配行,就会返回
Inner join:至少有一各匹配才返回行。

UNION子句

用于合并两个或者多个select 语句的结果集
不同select语句必须具有相同数量的列,并且赌赢列数据类型相同

Select 列名 from 表1 union [all] select 列名 form 表2 

解释:默认会去掉重复值,使用[all] ,不会去掉重复值

其他功能

数据库表备份

Select into:从一个表中选取数据,插入另一表,用于创建表的备份或者用于对记录进行备份

Select 列名 into 新表名 from 表名 where 条件

创建数据库

Create database 数据库名
Create table 表名(列名 数据类型,列名 数据类型,…)

数据类型有:interger int /smallint/ tinyint /char(size)/varchar(size)/date(yyyymmdd)等。

约束

自增约束
auto_increment

非空约束
列名 数据类型 NOT NULL(非空)

唯一约束

create table 表名(列名 数据类型, … [constaint 约束名] unique (列名1,列名2,…))

解释:[constaint 约束名]可以指定约束名
增加unique约束:alter table 表名 add unique(列名,列名,…)
删除unique约束:alter table 表名 drop unique index 约束名

主键约束
primary key

外键约束

foreign key(列名) references 表名(列名)

增加外键约束:

alter table 表名 add foreign key(列名) references 表名(列名)

Check约束
对单列定义check约束,则只允许取特定的值

Check(列名>0)

默认约束
定义新表时,放在列名,数据类型后面

修改默认约束

Alter table 表名 alter 列名 set default 值
Alter table 表名 alter 列名 drop default 值

索引

创建索引
Create index 语句
用于在表中创建索引,索引可以加快查询速度

Create index 索引名 on 表名(列名)
Create unique index 索引名 on 表名(列名,[列名,…]) 

解释1:unique 唯一索引,两行不能有相同的索引值
解释2:[列名,…],可以使用多个列名

删除索引
Alter table 表名 drop index 索引名

删除数据库或者表

Drop database 数据库名
Drop table 表名

修改表列

Alter table 表名 add 列名 数据类型
Alter table 表名 drop column 列名

SQL view 视图

视图是基于SQL语法的结果集的可视化表
创建视图

create view 视图名 as (select 语句)

在视图中查询,和表的使用一样

更新视图

create or replace view 视图名 as(select 语句)

撤销视图

drop view 视图名

函数

平均值
Select AVG(列名) as 返回名称 from 表名

行数
COUNT(列名),count(distinct,列名) 该字段不重复的个数

取特定值
First(列)第一个记录的值,类似有 LAST(),MAX(),MIN(),SUM()

字符串操作
UCASE(列):把字段值转为大写,类似LCASE(列),MID(列,start,length)取段字符,LEN()字符长度,ROUND()四舍五入,format(列,格式)用于时间

结合计数
Group by 用于结合计数函数,根据一个或多个列对结果进行分组

Select 列名 Function(列名) from 表名 group by 列名

Having子句
因为where 子句无法与函数一起使用,增加having

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟人斩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值