SQL基本语法

  1. 一、SQL概念
  2. 二、SQL基本语法
  3. 三、DQL(数据查询)
  4. 四、DDL(库、表操作)
  5. 五、DML(数据操作)
  6. 六、UNION

一、SQL概念

Windows版mysql的安装:下载链接
图形化sql操作软件(DBeaver):下载链接

SQL语言的分类
由于数据库管理系统(数据库软件)功能非常多,不仅仅是存储数据,还要包含:数据的管理、表的管理、库的管理、账户的管理、权限管理等。
所以,操作数据库的SQL语言,也基于功能,可以分为四类:

  • 1.数据定义:DDL(Data Definition Language)
    • 库的创建删除、表的创建删除
  • 2.数据操作:DML(DataManipulation Language)
    • 新增数据、删除数据、修改数据等
  • 3.数据控制:DCL(Data Control Language)
    • 新增用户、删除用户、密码修改、权限管理等
  • 4.数据查询:DQL(Data Query Language)
    • 基于需求查询和计算数据

SQL的语法特征

  • SQL语法,大小写不敏感
  • SQL可以单行或多行书写,最后以;号结束
  • SQL支持注释:
    • 单行注释:– 注释内容(– 后面要有空格)
    • 单行注释:# 注释内容(# 后面可以不加空格,推荐加上)
    • 多行注释:/* 注释内容 */

二、SQL基本语法

1、数据库基本操作
登录数据库(mysql):

mysql -u用户 -p密码			#-u后面跟用户 -p后面跟密码,没有空格
例如:
mysql -uroot -powaspbwa		

基本查看语法

查看当前数据库用户:
select user();

查看所有数据库:
show databases;

使用库:
use 库名;

查看当前所在库:
select database();

查看所有表:
show tables;
/* 在不切换库的时候用show tables FROM 库名; */

查看表结构:
desc 表名;

查看创建表sql语句: 
show create table 表名;		#最后面加\G可以以行方式显示

三、DQL(数据查询)

查询语句最后加上\G; 可以以行的方式更直观显示,例如:select * from users\G;

基础语法:select 列 from 表 [where 条件判断];

查询所有字段:
select * from 表名;
查询指定字段:
select username,password from users;
条件查询:
select * from users where username='admin';

逻辑与:
select * from users where id=1 and username='admin';		#两个条件都要满足

逻辑或:
select * from users where id=1 or username='admin1';		#只需要满足一个条件

/***
在不切换库的时候直接查询使用:select 列 from 库名.表名 [where 条件判断];
***/

排序分页
排序基础语法:select 列 from 表 [where 条件判断] order by 列 [asc|desc];
(order by 列,以这里的列为排序对象,asc为升序,desc为降序)
分页基础语法:select 列 from 表 [where 条件判断] limit 显示数量;
排序分页嵌套:select 列 from 表 [where 条件判断] order by 列 [asc|desc] limit 显示数量;

四、DDL(库、表操作)

库操作
查看有哪些数据库
show databases;
使用数据库
use 数据库名称
创建数据库
create database 数据库名称 charset utf8;
删除数据库
drop database 数据库名称;
查看当前是使用的数据库
select database();

表操作
查看有哪些表(需要先选择数据库)
show tables;
删除表
drop table 表名称;
drop table if exists 表名称;
创建表

create table 表名称(
    列名称 列类型,
    列名称 列类型
):

/*
列类型有
int					-- 整数
float				-- 浮点型
varchar(长度)		   --文本,长度为数字,做最大长度限制
date				-- 日期类型
timestamp			-- 时间戳类型
*/

五、DML(数据操作)

DML是指数据操作语言,英文全程是Data Manipulation Language ,用来对数据库表中记录进行更新。插入insert 删除delete 更新update

数据插入 insert
基础语法:insert into 表[(列1,列2,....列n)] values(值1,值2,....值n),(值1,值2,....值n)...,(值1,值2,....值n)
示例:

# 创建表
create table test_table(
    ID int,
    name varchar(20),
    age int
);

# 仅插入id列数据
insert into test_table(ID) values(10001),(10002),(10003);

# 插入全部列数据
insert into test_table(ID,name,age) values(10001,"周杰伦",31),(10002,"王力宏",33),(10003,"林俊杰",26);

# 插入全部列数据,快捷写法
insert into test_table values(10001,"周杰伦",31),(10002,"王力宏",33),(10003,"林俊杰",26);

数据删除 delete
删除行
基础语法 :delete from 表 [where 条件判断];
示例:

# 删除name为王五的数据
delete from test_table where name="王五"
# 删除ID>=10005的数据
delete from test_table where ID>=10005

数据更新 update
基础语法:update 表 set 列=值 [where 条件判断];
示例:

# 修改age列的全部数据为30
update test_table set age=30
# 修改ID为10004的name为李四
update test_table set name="李四" where ID=10004

六、UNION

UNION 主要功能是把两个或者更多 SELECT 语句的结果集合并成一个结果集。

示例:

-- 第一条语句
SELECT user, password FROM mysql.user;

-- 第二条语句
SELECT user, password FROM dvwa.users;

-- 联合查询
SELECT user, password FROM mysql.user
UNION
SELECT user, password FROM dvwa.users;

UNION的使用前提:

  • 列的数量和顺序:参与 UNION 操作的所有 SELECT 语句,其选择的列数量必须相同,并且列的顺序也要一致。
  • 数据类型:对应的列的数据类型应该是兼容的,这样才能保证合并结果的正确性。(可以数据类型不一样)
  • 去重:UNION 操作默认会去除合并结果中的重复行。如果想保留所有行,包括重复行,可以使用 UNION ALL。

UNION 与 UNION ALL 的区别:

  • UNION:会对合并后的结果集进行去重处理,也就是只保留唯一的行。
  • UNION ALL:不会进行去重操作,会直接把所有结果集合并在一起,即使有重复行也会全部保留。所以 - - -UNION ALL 的执行效率通常比 UNION 高,因为它不需要进行去重操作。

适用场景:

  • 数据合并:当需要把多个表中结构相同的数据合并成一个结果集时,UNION 就非常有用。
  • 数据统计:在进行数据统计时,可能需要从不同的数据源中获取数据并合并,这时也可以使用 UNION。
  • SQL注入攻击:帮助攻击者从数据库中获取额外的信息或者猜测sql列数

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tanglx@aliyun.com

×

喜欢就点赞,疼爱就打赏