一、概述:
“结构化查询语言(Structured Query Language)简称SQL,SQL语言就是一种对数据库进行操作的语言。
二、SQL的语法注意事项
SQL语句是以分号结尾的。
语句内不区分大小写。
像其他语言一样,SQL语言的注释分为单行注释和多行注释,分别为- -(单行注释)或#(单行注释)和/*多行注释*/
三、SQL语句的分类
SQL语句大致分为四类分别是:
DDL:DDL为数据定义语言,其作用是用来定义数据库对象。
DML:DML为数据库操作语言,其作用是对数据库内的数据进行增、删、改,操作。
DQL:DQL为数据查询语言,其作用是用来查询记录(行/元组)。
DCL:DCL为数据控制语言,其作用是创建数据库用户、控制用户访问权限。
四、对SQL语句的解释
(一)DDL——数据库操作
查询
1>查询所有数据库:
show databases;
2>查询当前数据库:
select database();
创建
create database [if not exists] 数据库名 [collate 排序规则];
//[if not exists]的作用是如果所命名的数据库存在则不发生任何创建操作,若不存在则创建该数据库
删除
Drop database [if exists] 数据库名称;
使用
use 数据库名;
(二)DDL——表操作——查询
查询当前数据库所有表:
show tables;
查询表结构
desc 表名;
查询指定表的建表语句:
show create table 表名;
//此查询为查询详细信息
(三)DDL——表操作——创建
create table 表名(
字段1 字段1类型 [comment 字段1的注释] //[comment 字段1的注释]可有可无
字段2 字段2类型 [comment 字段2的注释] //[comment 字段2的注释]可有可无
......
)[comment 表的注释] //[comment 表的注释]可有可无
(四)DDL——表操作——数据类型
数据类型可分为:数值类型、字符串类型、日期类型
数值类型
tiney 小整数类型
smallint 小整数类型
mediumint 大整数型
int 大整数型
bigint 极大整数型
float 单精度浮点型
double 双精度浮点型
decimal 小数值型
字符串类型
char 定长字符串
varchar 变长字符串
tinyblod <=255个字符的二进制数据
tinytext 短文本字符串
blod 二进制形式的长文本数据
text 长文本数据
mmediumblod 二进制形式的中长度文本数据
mediumtext 中长度文本数据
Longblod 二进制形式的极大文本数据
longtext 极大文本数据
日期类型
data 日期值
time 时间值
year 年份值
datatime 混合日期和时间
timestamp 混合日期和时间值(时间断)
(五)DDL——表操作——修改
添加字段
解释:对已近建好的表进行添加操作,语法如下:
alter table 表名 ADD 字段名 数据类型 comment "注释内容" 约束;
修改数据类型
解释:对已建好的字段的数据类型进行修改操作
alter table 表名 ADD 字段名 类型 comment 约束;
同时修改字段名和字段数据类型
alter table 表名 change 旧字段名 新字段名 类型;
删除字段
alter table 表名 Drop 字段名;
修改表名
alter table 表名 rename to 新表名;
(六)DDL——表操作——删除
删除表
Drop table [if exists] 表名;
删除指定的表并且重新创建该表
truncate table 表名;
(七)DML——数据操作——添加
指定字段添加数据
insert into 表名(字段1,字段2......)value(值1,值2....);
给全部字段添加数据
insert into 表名 value (值1,值2....)
指定字批量添加数据
insert into 表名(字段1,字段2,....)value(值1,值2),(值1,值2);
4、给全部字段批量添加数据
insert into 表名 value (值1,值2,....),(值1,值2);
(八)DML——数据操作——修改数据
updata 表名 set 字段1=值1,字段2=值2[where 条件];
(九)DML——数据操作——删除数据
delete from 表名 [where 条件];
(十)DQL——数据操作——数据查询
select 字段列表
from 表名列表
where 条件列表
Group By 分组字段列表
Having 分组后的条件列表
Order by 排序字段列表
limit 分页列表
(十一)DQL——基本查询
查询多个字段
select 字段 from 表名;//查询指定的记录
select * from 表名;//全表查询
设置别名
select 字段1 as '别名1',字段2 as '别名2'
from 表名;
去除重复记录
select distinct 字段
from 表名;
(十二)DQL——条件查询
1.固定的条件查询
select 字段
from 表名
where 条件;
2.范围条件查询
select 字段
from 表名
where 所查字段 between 最小值 and 最大值;
关键字IN的使用
select 字段
from 表名
where 字段1 in(与字段1对应的值,与字段1对应的值);
模糊查询
select 字段
from 表名
where 字段 like '%或 _'; // %代表多个字符;_代表单个字符
(十二)聚合函数
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
语法如下:
select 聚合函数(字段) 字段
from 表名;
注意:null值不参与函数运算
(十三)分组查询
select 字段
from 表名
【where 条件】
group by 分组字段名;//分组依据
【having 分组后过滤条件】;
(十四)排序查询
语法:
select 字段
from 表名
order by 字段1 排序方式,字段2 排序方式;
排序方式:
(1)ASC:升序(默认值)
(2)DESC:降序
(十四)分页查询
语法:
select 字段
from 表名
limit 起始索引,查询记录数;
起始索引=(查询页码-1)*显示记录数
(十五)DCL——用户管理
1.查询用户
use mysql;
select*
from user;
2.创建用户
create user '用户名'@'主机名' identified by '密码';
//主机名:
//localhost :只允许当前主机访问
// % :任意主机访问
3.修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
4.删除用户
drop user '用户名'@'主机名';
(十五)DCL——权限控制
常用权限
All/all privileges 所有权限
select 查询数据
insert 插入数据
update 修改数据
delete 删除数据
alter 修改表/字段
drop 删除数据库/表/视图
create 创建数据库/表
2.查询权限
show grants for '用户名'@'主机名';
3.授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
4.撤销权限
revoke 权限列表 on 数据库名.表名 from'用户名'@'主机名';
结语:
以上是一些sql的简单语法,本文涉及sql语言的增删改查等基础语法,以及DCL语言的用户管理和权限控制,权限控制不是很详细,由于时间问题只写了一部分,如果感兴趣可以持续关注本账号后续更新,写作目的是为了可以帮助新手快速了解sql语言的基础部分。
注:本文章若有任何侵权信息,可随时在下方评论区或私信本人进行告知,本人会立即撤回文章进行整改。