SQL
什么是SQL?
SQL(Structured Query Language)的中文意思是结构化查询语言
定义了操作所有关系型数据库的规则 因为每一种数据库的操作方式会存在不一样的地方 因此需要一个总的总则
SQL的语法是怎样的?
- SQL语句可以写成单行或多行,同样是以分号结尾
- 可以使用空格来增强语句的可读性
- SQL语句是不区分大小写的,但是建议关键字使用大写
- 注释
单行注释:-- 注释内容
多行注释:/* 注释 */
SQL有哪几类?
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等DQL(Data Query Language)数据查询语言
(重点)
用来查询数据库中表的记录(数据)。关键字:select, where 等DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
DDL有哪些操作?
DDL有操作分为两大类
- 对数据库进行操作
- 表进行操作
如何操作数据库?
- 创建数据库 关键字:
create
;语句:create database 数据库
;
另外创建数据库是可以对其进行判断是否存在
例如:create database if not exists 数据库名称
;
- 查询数据库 关键字:
show
;查询所有数据数据库语句:show databases
;
查询某个数据库的创建语句:show create database 数据库名称
;
- 修改数据库 关键字:
alter
;例如修改数据库的字符集:alter database 数据库名称 character set 字符集名称
;
- 删除数据库 关键字:
drop
;通常都是判断然后再进行删除:drop database if exists 数据库名称
;
这样做的目的是以免数据库不存在时发生错误;
- 使用数据库
关键字有两个 查询当前使用的数据库:select
;语句:select database()
;
使用数据库 关键字:use
语句:use 数据库名称
;
有了数据库然后如何操作表?
- 创建表 关键字:
create table
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
); -- 最后一行不需要加逗号
有哪几种数据类型?
int
(整形);double
(小数类型);date
(只包含年月日的日期);datetime
(年月日时分秒);timestamp
(时间戳,不赋值时默认用系统时间);varchar()
(字符串,括号里填最大字符个数)
此外还有一个复制表的操作语句:create table 表名 like 被复制的表名
;
- 查询表的操作 关键字:
show tables
;查询所有表名称语句:show tables
;查询表结构:desc 表名
;
- 修改表的操作 关键字
alter table
;
语句 | 说明 |
---|---|
alter table 表名 rename to 新的表名 | 修改表名 |
alter table 表名 character set 字符集名称 | 修改表的字符集 |
alter table 表名 add 列名 数据类型 | 添加一列 |
alter table 表名 change 列名 新列别 新数据类型 | 修改列名以及数据类型 |
alter table 表名 modify 列名 新数据类型 | 修改该列的数据类型 |
alter table 表名 drop 列名 | 删除列 |
- 删除表 关键字
drop table
; 语句:drop table 表名
;通常是使用:drop table if exists 表名
;
DML怎样操作?
DML是对表中的数据进行增删改
的基本操作
- 在表中添加数据 关键字:
insert into
;语法:insert into 表名 values(值1,值2,...值n)
;
要注意的是除了数字类型其他数据类型都需要使用引号引起来
- 删除表中的数据 关键字:
delete from
;语法:delete from 表名
;//后面可以加where条件
如果不添加条件的话表中的所有记录都会被删除
如果真的要想删除表中所有的记录那么推荐使用TRUNCATE TABLE 表名
因为该方法是将整个表删除后再创建一张一样的表
而delete from 表名
是将记录逐条删除 这样做的效率低
- 修改表中数据 关键字:
update
语法:update 表名 set 列名1 = 值1,列名2 = 值2,... [where 条件]
;
如果不添加条件的话表中所有记录都会被修改
怎样使用DQL查询记录?
基本语法:select * from 表名
关键字 | 说明 |
---|---|
select | 字段列表 |
from | 表名列表 |
where | 条件列表 |
group by | 分组字段 |
having | 分组之后的条件 |
order by | 排序 |
limit | 分页限定 |
基础查询
- 多个字段查询语法:
select 字段名1,字段名2... from 表名
;
- 去除重复查询 关键字:
distinct
- 列计算:将列名进行相加即可
- 起别名 关键字:
as
条件查询
在where
关键字后 接列名
然后再接条件关键字或运算符
运算符 | 说明 |
---|---|
> 、< 、<= 、>= 、= 、<> | <> 和!= 是等价的 |
BETWEEN…AND | 在几到几之间 |
IN | 集合 |
LIKE | 模糊查询_:表示单个字符 ;%:表示多个字符 |
IS NULL | 判断是否为null (不能用=null) |
and | && |
or | || |
not | ! |
比较特别的就是模糊查询
记住_
代表一个字;%
代表多个字
后续 : SQL基本操作和约束 中
CET4P246
- resistant
- possess
- fate
- widespread
- postage
- wicked
- maximum
- classification
- active
- widen
- beard
- widow