sql语句分类(附mysql实操语句)

一 数据库定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等。
1.1 DDL之数据库操作
a, 创建数据库并指定编码
create database 数据库名 charset set utf8mb4;
b 查看数据库
show databases;
c 查看某个数据库定义信息
show create database 数据库名;
d 查看正在使用的数据库
select database();
e 切换数据库
use 数据库名;
f 删除数据库
drop database if exists 数据库名;
1,2DDL 之 表操作
a:创建表
create table 表名(
字段名 类型 [ 约束]
):
类型:
整形 :int
浮点型:float
日期:date
字符串:varchar(n)
约束:
primary key
b 查看所有的表
show tables;
c 查看表结构:
desc 表名;
d 修改表结构
alter table 表名 add 列名 类型(长度)[约束] ------添加列
alter table 表名 change 旧列名 新列名 类型 长度 约束----修改列名
alter table 表名 modify 列名 类型 长度 约束 --------修改列的类型及长度
alter table 表名 drop 列名 ------删除列
alter table 表名 drop 列名
rename table 表名 to 新表名
alter table 表名 charset set 字符集 —修改表的字符集


DML数据操作语言
1 插入表记录:insert
向表中插入某些字段
insert into 表(字段1 ,字段2) values(值1 ,值2);
向表中插入所有字段的顺序创建表时的顺序
insert into 表 values (值1 值2);
注意:
值与字段必须对应,个数相同,类型相同。
值的数据大小必须在字段的长度范围内。
除了数值类型外,其它的字段类型的值必须使用引号引起(建议单引号)。
如果要插入空值,可以不写字段,或者插入 null。
2 update
update 表名 set 字段名=值, 字段名=值,…where 条件
注意:
列名的类型与修改的值要一致。
修改值得时候不能超过最大长度。
除了数值类型外,其它的字段类型的值必须使用引号引起(建议单引号)。
3.delete
delete from 表名 where 条件
truncate table 表名
delete ----一条一条的删除 不清空auto_increment记录数
truncate ----直接将表删除 重新建表
三 Dcl 语言
四 DQL
1.简单查询
select price from 表名;
2 去重查询
select distinct price from product;
3 运算查询
select price+2 from product;
4 别名查询
select price from product as p;---------表别名
select pname as pn from product;-------列表名

5 比较运算符

  <	<=		>=	=	<>	!=     

大于、小于、大于(小于)等于、不等于
1
2
BETWEEN …AND… 显示在某一区间的值(含头含尾)
IN(set) 显示在in列表中的值,例:in(100,200)
LIKE ‘张pattern’ 模糊查询,Like语句中,%代表零个或多个任意字符,_代表一个字符,
例如:first_name like ‘_a%’;
IS NULL 判断是否为空;非空:IS NOT NULL

6 逻辑运算符
and 多个条件同时成立
or 多个条件任一成立
not 不成立,例:where not (salary>100);
7 排序
select * from 表名 order by 排序字段 desc;
desc :降序
asc:升序

select distint price from product order by price desc;
8 聚合函数

count():统计指定列不为null的记录行数;
sum():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
max():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
min():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
avg():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
9 分组
select 字段1 ,字段2 from 表名 where 条件 group by 分组字段 having 条件;
having 和where 的区别
having 是在分组后完成的
where 是在分组前对数据进行过滤 后面不可以使用分组函数
10 分页查询
select 字段 1 ,字段2, from 表名 limit m,n;
m: 表示从第几条索引开始 计算方式
n:整数 表示 查询多少条数据
11 主键约束
主键约束
主键必须包含唯一的值。
主键列不能包含 null 值。
每个表都应该有且只能有一个主键。

添加主键约束

方式一:创建表时,在字段描述处,声明指定字段为主键

create table persons
(
id int(11) primary key
);
1
2
3
4
方式二:创建表时,在constraint约束区域,声明指定字段为主键

格式:[constraint 名称] primary key (字段列表)
关键字constraint可以省略,如果需要为主键命名,constraint不能省略,主键名称一般没用。

字段列表需要使用小括号括住,如果有多字段需要使用逗号分隔。
注:声明两个以上字段为主键,我们称为联合主键。

create table persons
(
firstname varchar(255),
lastname varchar(255),
address varchar(255),
constraint personid primary key (firstname, lastname)
);

create table persons
(
firstname varchar(255),
lastname varchar(255),
primary key (firstname)
);

方式三:创建表之后,通过修改表结构,声明指定字段为主键:

alter table persons add [constraint 名称] primary key (字段列表);
删除主键约束

alter table persons drop primary key;
自动增长列类型必须是整形,自动增长列必须为键(一般是主键)。

create table persons(id int primary key auto_increment);
默认地,auto_increment 的开始值是 1,如果希望修改起始值
alter table persons auto_increment=100;
唯一约束
unique 约束唯一。
unique 和 primary key 约束均为列或列集合提供了唯一性的保证。
primary key 拥有自动定义的 unique 约束。

请注意,每个表可以有多个 unique 约束,但是每个表只能有一个 primary key 约束。
如需删除约束,请使用下面的 sql:

alter table persons drop index名称

如果添加唯一约束时,没有设置约束名称,默认是当前字段的字段名。

唯一约束与主键约束的区别:
唯一:唯一、可以有空值,但只能有一个空值。一个表可以有多个唯一约束。
主键:唯一、不能为空、一个表只能有一个主键,非业务数据
12 多表联查
a 交叉查询
select * from a,b;
b 内 连接查询
隐式内连接
select * from a,b where 条件;
显式内连接
select * from a inner join b on 条件;
c 外连接
左外连接
select * from A left outer join b on 条件;
右外连接
select * from a right outer join b on 条件;
13 子查询
select 查询字段 from 表 where 查询条件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值