SQL常用语句(基础)大全

本文详细介绍了SQL的四种主要类型:数据定义语言DDL(如创建库、表)、数据操作语言DML(如插入、删除和修改数据)、数据查询语言DQL(如查询、分页和连接)、以及数据控制语言DCL(如用户管理与权限)。涵盖了创建、修改、查询和权限控制等关键操作。
摘要由CSDN通过智能技术生成

1.DDL

DDL是数据定义语言,主要是对数据库和数据表的操作

1.库

--创建库
create database 库名;
--创建库时判断库是否存在,不存在则创建
create database if not exists 库名;
--查看所有数据库
show databases;
--使用指定数据库
use 库名;
--查看当前指定数据库包含的数据表
show tables;
--查看数据库的结构定义信息
show create database 库名;
--删除数据库
drop database 库名;
--修改数据库的字符集为utf8
alter database 库名 character set utf8;

2.表

--创建表
create table 表名(
字段1 类型1,
字段2 类型2,
字段3 类型3,
...........
);
--查看表结构
desc 表名;
--查看创建表的SQL语句
show create table 表名;
--修改表名
alter table 表名 rename to 新的表名;
--添加一个新的字段
alter table 表名 add 字段; 字段类型;
--修改字段名
alter table 表名 rename column 字段名 to 新的字段名;
--修改字段类型(注意类型修改前后数据是否兼容)
alter table 表名 modify column 字段名 新的字段类型;
--删除一个字段
alter table 表名 drop 字段名;
--删除表
drop table 表名;
--删除表时判断表是否存在,若存在则删除
drop table if exists 表名;

2.DML

DML是数据操作语言,主要是对数据表的操作

1.插入数据 insert inot

--有多少个字段,就要写多少个值一一对应的
insert into 表名 values(1,2,3...值n);
--此方法需要写出所有字段,并一一对应插入值
insert into 表名(字段1,字段2...字段n) values(1,2...值n);

2.删除数据 delete / truncate

--删除表中所有数据
delete from 表名;
--删除表中指定的数据
delete from 表名 where 字段 =;
--删除表中所有数据(先删除整张表,然后创建一张一样的空表,此方法更高效)
truncate table 表名;

3.修改数据 update set

--无限制条件的修改,会修改整张表
update 表名 set 字段 =;
--有限制条件的修改,只修改特定数据
update 表名 set 字段 =where 条件(字段 =);

3.DQL

DQL是数据查询语言,主要就是select配合其他限制条件的关键字进行查询

1.无条件查询

--查询表中所有数据
select *from 表名;

2.查询 什么开始 到什么结束

--查询users表中年龄在18~30岁之间的记录
--方式1 between..and..
select * from users where age between 18 and 30;
--方式2 &&
select * from users where age>=18 && age<=30;
--方式3 and
select * from users where age>=18 and age<=30;

3.指定条件查询

1.单个条件 ro in

--查询users表中年龄为18,20,30岁的记录
--方式1 or
select *from users where age=18 or age=20 or age=30;
--方式2 in
select *from users where age in(18,20,30);

2.多个条件 and

--查询users表中年龄为17,性别为男,名字为王冬的记录
select * from users where age=17 and sex='男' and name='王冬'; 

4.查询不为NULL值 is not null ,为NULL值 is null

--查询users表中序号不为空的记录
select * from users where id is not null;
--查询user表中序号为空的记录
select *from users where id is null;

5.模糊查询 like

--查询users表中姓名第一个字为李的记录
select *from users where name like '李%';

--查询users表中姓名第二个字为李的记录
select *from users where name like '_李%';

--查询users表中姓名含有李字的记录
select *from users where name like '%李%';

--查询users表中姓名是两个字的记录
select *from users where name like '__';

6.去除重复记录查询 distinct

--查询users表中所在城市不相同的记录
--select distinct 字段 from 表名;

select distinct city from users;

7.排序查询 order by

1.单条件
--查询users表中记录,并以年龄升序排序
select * from users order by age; 默认升序
 
--查询users表中记录,并以年龄降序排序  desc降序
select * from users 
order by age desc;
2.多条件

只有当第一个排序条件值一样,才会执行第二个排序条件

--查询users表中记录,并体育成绩降序,年龄降序
select *from users order by PE desc,age desc;

8.聚合函数

1.计算和 sum
select sum(字段) as sum from 表名;
2.计算最大值 max
select max(字段) as max from 表名;
3.计算最小值 min
select min(字段) as min from 表名;
4.计算平均值 avg
select avg(字段) as avg from 表名;
5.计算个数 count
select count(字段) as count from 表名;

9.分组查询 group by

--查询users表中的记录,按照性别分组,查询男,女的考试成绩平均分

select sex,avg(result) from users group by sex;

--查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数

select sex, avg(result),count(id) from users group by sex;

--查询users表中的记录, 按照性别分组,分别查询男、女的成绩成绩平均分,人数 要求:分数低于60分的人,不参与分组
select sex, avg(result),count(id) from users where result> 60 group by sex; 

 --查询users表中的记录,按照性别分组,分别查询男、女的考试成绩平均分,人数 要求:分数低于60分的人,不参与分组,分组之后,人数要大于2个人

select sex,avg(result),count(id) from users where result > 60 group by sex having count(id)>2;

10.分页查询

--查询users表中的前10行条记录
select * from users limit 10;
--查询users表中第2~11条记录 (从第5条记录开始累加10条记录)
select * from users limit 4,10;
--查询users表中第5~17条记录 (从第5条记录开始累加13条记录)
select * from users limit 4,13;

11.内连接查询

如果查询数据的来源来自多张表,则必须对这些表进行连接查询

--语法1 (隐式内连接)
select 字段1,字段2...
from1,2...
where 过滤条件;
 
--语法2 (显式内连接)
select 字段1,字段2...
from1 inner join2 ...
on 过滤条件;

12.外连接查询​

左外连接:是表1和表2的交集再并上表1的其他数据

右外连接:是表1和表2的交集再并上表2的其他数据

--左外连接
select 字段1,字段2..
from1 left (outer) join2 on 过滤条件;
--右外连接
select 字段1,字段2..
from1 right (outer) join2 on 过滤条件;

13.子查询

查询语句中嵌套查询语句

-- 查询最大的年龄,左边条件是什么右边必须返回一样的
select * from user where age=(select max(age) from user);

4.DCL

数据控制语言:用来授权或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,能够对数据库进行监视

1.管理用户

1.添加用户

create user '用户名'@'主机名' identified by '密码';

2.删除用户

drop user '用户名'@'主机名';

3.修改密码

USE mysql;
UPDATE USER SET PASSWORD=PASSWORD(‘密码’) WHERE User=’用户名’ and Host=’IP’;
FLUSH PRIVILEGES;
--将root的密码改为root
update user set password=password('root') where user='root' and host=’localhost’;
FLUSH PRIVILEGES;

4.查询所有用户

-- 查询用户
-- 1、切换到mysql数据库
USE mysql;
-- 2、查询user表
SELECT *FROM USER;

2.权限管理

1.权限管理

show grants for '用户名'@'主机名';

2.授予权限

--语法
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

--授予faker用户所有权限,在任意数据库任意表上
grant all on *.* to 'faker'@'localhost';

3.撤销权限

--语法
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
--撤销faker用户对tests数据库中city数据表的权限
revoke update on tests.city from 'faker'@'localhost';

  • 20
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
第一部分、 基础 1、创建数据库 2、删除数据库 3、备份sql server 4、创建新表 5、删除新表 6、增加一个列 7、添加和删除主键 8、索引 9、视图 10、几个简单的基本的sql语句 11、几个高级查询运算词 12、使用外连接 13、分组:Group by: 14、对数据库进行操作: 15.如何修改数据库的名称: 第二部分、 提升 1、复制表 2、拷贝表 3、跨数据库之间表的拷贝 4、子查询 5、显示文章、提交人和最后回复时间 6、外连接查询 7、在线视图查询 8、between的用法 9、in 的使用方法 10、两张关联表,删除主表中已经在副表中没有的信息 11、四表联查问题 12、日程安排提前五分钟提醒 13、一条sql 语句搞定数据库分页 14、前10条记录 15、选择每组中的最大数 第三部分、 技巧 1、True/False的使用 2、收缩数据库 3、压缩数据库 dbcc shrinkdatabase(dbname) 4、转移数据库给新用户以已存在用户权限 5、检查备份集 6、修复数据库 7、日志清除 8、更改某个表 9、存储更改全部表 10、SQL SERVER中直接循环写入数据 数据开发-经典 1.按姓氏笔画排序 2.数据库加密 3.取回表中字段 4.查看硬盘分区 5.比较A,B表是否相等 6.杀掉所有的事件探察器进程 7.记录搜索: 9:获取当前数据库中的所有用户表 10:获取某一个表的所有字段 11:查看与某一个表相关的视图、存储过程、函数 12:查看当前数据库中所有存储过程 13:查询用户创建的所有数据库 14:查询某一个表的字段和数据类型 15:不同服务器数据库之间的数据操作 SQL Server基本函数 SQLServer2000同步复制技术实现步骤 一、 预备工作 二、 正式配置
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值