SQL基础总结


SQL基础总结

SQL语言分类

1、DML(Data Manipulation Language):数据操纵语句,用于添 加、删除、修改、查询数据库记录,并检查数据完整性。

INSERT:添加数据到数据库中
UPDATE:修改数据库中的数据
DELETE:删除数据库中的数据
SELECT:选择(查询)数据

2、DDL(Data Definition Language):数据定义语句,用于库和 表的创建、修改、删除。

CREATE TABLE:创建数据库表
ALTER TABLE:更改表结构、添加、删除、修改列长度
DROP TABLE:删除表

3、DCL(Data Control Language):数据控制语句,用于定义用 户的访问权限和安全级别。

COMMIT:提交事务处理
ROLLBACK:事务处理回退
SAVEPOINT:设置保存点
LOCK:对数据库的特定部分进行锁定

数据查询

SELECT

SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table;

SELECT:标识选择哪些列
FROM:标识从哪个表中选择

列的别名有三种方式,例子如下:

SELECT last_name AS name, commission_pct comm
FROM employees;

SELECT last_name "Name", salary*12  
FROM employees;

SELECT commission_pct comm
FROM employees;

DESCRIBE

查询表结构:

DESC[RIBE] tablename;

WHERE

where子句用于对查询的数据进行过滤:

SELECT    *|{[DISTINCT] column|expression [alias],...}
FROM    table  
[WHERE    condition(s)];

WHERE子句紧随FROM子句,除了可以用>\<\!=等常用的比较运算符外,还可以使用下列操作符进行数据过滤:

操作符含义
BETWEEN…AND…在两个值之间(包含边界)
IN(set)等于值列表中的一个
LIKE模糊查询
IS NULL空值

PS:WHERE子句中不能使用别名,不能使用组函数

ORDER BY

子句order by用于排序
asc:升序
desc:降序

SELECT XXX FROM XXX
ORDER BY XXX 

SELECT XXX FROM XXX
ORDER BY XXX DESC

/*多个列排序,分主次,在前的为主*/
SELECT XXX FROM XXX
ORDER BY XXX DESC,XXX

组函数

组函数作用于一组数据,并对一组数据返回一个值。其类型有:

AVG()
COUNT()
MAX()
MIN()
SUM()

GROUP BY

GROUP BY子句将表中的数据分成若干组

SELECT column, group_function(column)  
FROM table
[WHERE condition]
[GROUP BY group_by_expression]  
[ORDER BY column];

HAVING

SELECT column, group_function(column)  
FROM table
[WHERE condition]
[GROUP BY group_by_expression] 
[HAVING group_condition] 
[ORDER BY column];

使用HAVING子句的几个条件:

  1. 行已经被分组
  2. 使用了组函数
  3. 满足HAVING子句中条件的分组将被显示

JOIN ON

多表连接,其可以有几种分类:
内连接:[INNER] join on
外连接:
·左外连接:left [outer] join on
·右外连接:right [outer] join on

常见函数

字符函数

LOWER  UPPER

CONCAT  SUBSTR  LENGTH  INSTR
LPAD | RPAD  TRIM  REPLACE

数字函数

ROUND: 四舍五入
TRUNCATE:截断
MOD: 求余

日期函数

now():获取当前日期
str_to_date: 将日期格式的字符转换成指定格式的日期
date_format:将日期转换成字符
序号格式符功能
1%Y四位的年份
2%y2位的年份
3%m月份(01,02…11,12)
4%c月份(1,2,…11,12)
5%d日(01,02,…)
6%H小时(24小时制)
7%h小时(12小时制)
8%i分钟(00,01…59)
9%s秒(00,01,…59)

CASE表达式

CASE expr WHEN comparison_expr1 THEN return_expr1  [WHEN comparison_expr2 THEN return_expr2  WHEN comparison_exprn THEN return_exprn
ELSE else_expr]
END

子查询

子查询是出现在其他语句内部的select语句。
单行子查询使用单行比较操作符;
多行子查询使用多行比较操作符;

多行子查询的比较操作符

操作符含义
IN/NOT IN等于列表中的任意一个
ANY SOME和子查询返回的某一个值比较
ALL和子查询返回的所有值比较

创建和管理表

CREATE TABLE

CREATE TABLE [schema.]table
(column datatype [DEFAULT expr][, ...]);

还可以使用子查询来创建表、复制现有表

ALTER TABLE

使用 ALTER TABLE 语句可以实现:
·向已有的表中添加列(ADD)
·修改现有表中的列(MODIFY)
·删除现有表中的列(DROP)
·重命名现有表中的列(CHANGE)

删除表

DROP:删除数据和结够,不能回滚
TRUNCATE TABLE:清空表中所有的数据
DELETE:删除数据,可以回滚,在commit后才真正删除

RENAME

ALTER table dept  
RENAME TO detail_dept;  

数据类型

数值类型

分为整型、小数、位类型

字符类型

分为char和varchar、binary和varbinary、enum和set类型

日期类型

约束和分页

约束

六种约束:

NOT NULL 非空约束,规定某个字段不能为空
UNIQUE	唯一约束,规定某个字段在整个表中是唯一的
PRIMARY KEY 主键(非空且唯一)
FOREIGN KEY 外键
CHECK	检查约束
DEFAULT	默认值

分页

/*9:从第几条数据的下一条数据开始取,10:取几条数据*/
select * from employees limit 9, 10;
select * from employees limit 10, offset 9;

/*pageSize:每页显示多少条数据,pageNumber:页码*/
/*返回第pageNumber页 每条页数,为pageSize 的sql语句为:
select * from xxx limit (pageNmuber - 1)*pageSize, pageSize;*/

/*返回第5页,每页数据为20条的数据*/
select * from employees limit 80, 20;

事务

事务:事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。而整个单独单 元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元将会回滚。所有受到影 响的数据将返回到事物开始以前的状态;如果单元中的所 有SQL语句均执行成功,则事物被顺利执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值