SQL常用查询语句

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lyj243719866/article/details/79617993

SQL 语句

您需要在数据库上执行的大部分工作都由 SQL 语句完成,在使用SQL语句之前,一定要记住,SQL 对大小写不敏感!

SQL 语句后面的分号?

某些数据库系统要求在每条 SQL 命令的末端使用分号。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

常用的一些SQL语句

1.查看数据库
show databases;
2.创建数据库
create database 数据库名;
编码格式默认是UTF-8
创建一个编码格式是GBK的数据库
create database 数据库名 character set GBK;
查看前面创建的数据库的定义信息
show create database 数据库名
3.切换数据库
use 数据库名
4.修改数据库的编码格式
alter database 数据库名 character set 要修改的编码格式;
6.操作数据库中的数据表
常用数据类型:
int:整型
double:浮点型,例如double(5,2)表示最多五位,其中必须有两个小数,最大值即999.99
char:固定长度字符串类型,char(10)如果存的不足10位,自动用空格补足后面的
varchar:可变长度字符串类型,varchar(10)如果存的不足10位,会缩短长度到合适的位置
text:字符串类型,大数据文本 最大约4M
blob:字节类型,保存音频 图片 路径
date:日期类型 格式为yyyy-MM-dd;
7.修改表
添加一列
alter table 表名 add 字段 字段类型
修改列
alter table 表名 modify 字段 字段类型
删除列
alter table 表名 drop 字段
修改表名
rename table 老名 to 新名
8.操作表数据
插入
insert into 表名(列名1,列名2...)values(列值1,列值2...)
insert into 表名 values(列值1,列值2...)按照顺序
批量插入
insert into 表名 values(),(),()...
修改
update 表名 set 列名=列值 (where name='wanglong');
删除(删除一条记录)
delete from 表名 (where name='wanglong');
9.查询
select 列名1,列名2 from表名(查询多列用逗号隔开);
select * from 表名 (全部查询);
条件查询
在查询时给出where字句,来判断查询哪些
between...and范围查询 age between 18 and 30;
in(set);固定的范围之内 用逗号隔开
is null;判断是空
is not null;判断不是空
and;与
or;或
not;非

字段控制查询
过滤重复记录
select distinct 列名 from 表名

查询数据之和
如果两个值为int可以相加,否则会报错
如果两个值中有NULL,则相加为NULL
解决办法:ifnull(null的列名,为null时当什么值来处理)

排序
select * from 表名 order by 按哪个列名排序 asc 升序/desc 降序
默认是升序
order by后面的排序可以连着使用,在第一层排序规则相等的情况下,按照下一层排序规则再排

聚合函数
count,sum,avg,max,min
count:统计指定列不为null的记录行数
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

分组查询
当需要分组查询的时候使用group by字句
select 列名,聚合函数() from 表名 group by 列名
和聚合函数一起出现的列名一定要出现在group by后面,

having子句
having字句在group by 后面,它和where不同,where针对分组前数据进行过滤且不能使用聚合函数,如果某行记录没有满足where字句的条件,那么记录不会参与分组,having针对分组后的数据进行过滤并可以使用聚合函数

分页查询
select * from 表名 limit 起始页,一共显示几条记录

模糊查询
通配符
_代表一个字符
%代表0~n个字符

10.约束

主键特点:1.唯一 2.不能为空
第一种:在建表的时候,在类型后面添加primary key
第二种:在建表的时候,最后写primary key(主键),这种好处是可以添加联合主键
联合主键是两个值不完全相等即可插入到表中
第三种:add constraint(添加约束)
alter table 表名 add constraint primary key(列名);

在primary key后面加上auto_increment,然后在插入的时候加null可以自动增长列

在列值类型后面加上unique,可以限定数据不能重复,但可以有空值

在列值类型后面加上not null,可以约束数据不能为空

默认值约束default
默认约束在插入数据时可以插入null,只有插入default的时候才用默认值

外键约束
第一种:在建表的时候直接创建
constraint fk_从表名_列名 foreign key(外键) references 主表(主键)
第二种:alter table 表名 add constraint fk_从表名_列名 foreign key(外键) references 主表(主键)
让表与表之间通过字段建立联系
建立多对多关系的时候 实际上就是建立外键
明确:在中间表上建立外键,是哪个字段和哪个字段建立联系
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页