SQL
大致介绍
1.SQL是什么
SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制
2.SQL能做社么
SQL 面向数据库执行查询
SQL 可从数据库取回数据
SQL 可在数据库中插入新的记录
SQL 可更新数据库中的数据
SQL 可从数据库删除记录
SQL 可创建新数据库
SQL 可在数据库中创建新表
SQL 可在数据库中创建存储过程
SQL 可在数据库中创建视图
SQL 可以设置表、存储过程和视图的权限
基本语法
操作对象
由大到小
数据库->表->字段-数据
sql语句可以单行书写也可以多行书写,以分号结尾可使用空格,缩进增加可读性,sql对大小写不敏感
单行注释--,多行注释/*......*/
1.数据库表:
一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:"Websites"),表包含带有数据的记录(行)。
2.DDL(数据定义语言)
库操作
用来定义数据库对象
查询所有数据库:SHOW DATABASES;
查询当前数据库:SELECT DATABASE();
创建: CREATE DATABASE 数据库名 字符集 排序规则;
(在数据库名前加 if not exists 可防止创建相同名字的数据库)
(在数据库名后加 default charset 可自定义字符集)
删除:DROP 数据库名
(在数据库名前加 if not exists 可防止删除不存在名字的数据库)
使用:USE 数据库名
表操作
查询当前所有表: SHOW TABLES
查询表结构: DESC 表名;
查询指定表的建表语句: SHOW CREATE TABLE 表名;
创建字段:
CREATE TABLE 表名(
id int comment(注释)‘编号’,
那么 varchar(10) comment '姓名'
)comment(注释);
基本数据类型:
数值类型:int float double
后加 unsigned可以控制非负
字符串类型:定长度char() 不定长度varchar()
日期类型:date 年-月-日,TIME 时-分-秒,DATETIME, 年月日加时分秒
修改字段:
添加字段:ALTER TABLE 表名 ADD 字段名 类型(长度)
修改字段的数据类型:ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度)
修改字段名和字段类型 :ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型(长度)
删除字段 :ALTER TABLE 表明 DROP 字段名
修改表名:ALTER TABLE 表名 RENAME TO 新表名;
删除表:DROP TABLE (if exists) 表名
TRUNCATE TABLE (将字段全部删除,但还有表名)
3.DML(数据操作语言)
用来对数据库表中的数据进行增删改
添加数据
给指定字段添加数据;INSERT INTO 表名(字段名1,字段名2)VALUES (值1,值2);
给全部字段添加数据:INSERT INTO 表名 VALUES(值1,值2)
批量添加数据:INSERT INTO 表名(字段名1,字段名2....)VALUES(值1,值2..),(值1,值2)
INSERT INTO 表名 VALUES(值1,值2),(值 1,值2)
修改数据
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...where 条件;
删除数据
DELETE FROM 表名 where 条件
4.DQL(数据查询语言)
用来查询数据库中表的记录
SELECT 字段名 FROM 表名 WHERE 条件
1.基本查询
查询多个字段:SELECT 字段1,字段2,字段3....FROM 表名;
查询全表内容:SELECT * FROM 表名;
给查询的字段名显示出易于理解的别名:SELECT 字段名 AS 别名 FROM 表名;
重复内容省略:SELECT DISTINCT 字段名 FOROM 表名;
2.条件查询
条件表示方法 > ,< ,=,等都可以使用,
在某个范围之间:BETWEEN.......AND.......
在in之后列表中的值满足其一即可:IN(...)
模糊匹配(_匹配单个字符,%匹配任意个字符):LIKE 占位符
空:IS NULL
并 AND &&
或 OR ||
非 NOT !
3.聚合函数(将一列数据作为一个整体,进行纵向计算)
SELECT 聚合函数(字段列表)FROM 表名
常见聚合函数:
count():统计数量;
max():最大值;
min():最小值;
avg():平均值;
sum():求和;
注意:NULL值不参与聚合函数运算
4.分组查询
SELECT 字段列表 FROM WHERE 条件 表名 GROUP BY 分组字段名 HAVING 条件
(where后的条件不能用聚合函数,在分组之前过滤)
(having后的条件能用聚合函数,在分组之后过滤)
5.排序查询
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式 字段2 排序方式(在字段1相同的情况下才会再去比较字段2)
排序方式:升序DESC 降序 ASC
6.分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数
起始索引=(查询页码-1)*每页显示记录数
编写顺序 SELECT->FROM->WHERE->GROUP BY->HAVING->ORDER BY->LIMIT
执行顺序:FROM->WHERE->GROUP BY->HAVING->SELECT->ORDER BY->LIMIT
5.DCL(数据控制语言)
用来创建数据库用户、控制数据库的访问权限
1.管理用户
查询用户:USE mysql;SELECT * FROM USER
创建用户:CREATE USER ”用户名“@”主机名“ IDENTIFIED BY "密码";
修改用户密码: ALTER USER ”用户名“@”主机名“ IDENTIFIED WITH mysql_native_password BY "新密码";
删除用户:DROP USER ”用户名“@“主机名”;
“%”可在任意地址
2.权限控制
查询权限:SHOW GRANTS FOR “用户名”@“主机名”;
授予权限:GRANT 权限列表 ON 数据库名.表名 TO “用户名”@“主机名”;
撤销权限:REVOKE 权限列表 ON 数据库名.表名 FROM “用户名”@“主机名”;
权限:
ALL 所有权限
SELECT 查询数据
INSERT 插入数据
INSERT 插入数据
UPDATE 修改数据
DELETE 删除数据
ALTER 修改表
DROP 删除数据库或表或视图
GREATE 创建数据库或表
mysql
是一种关系型数据库管理系统(DBMS)
(建立在关系模型基础上,由多张相互连接的二维表组成的数据库)
mysql本质上是一个操纵和管理数据库的大型软件
通过sql可以操作数据库管理系统