sql 操作语言分类
1. 数据库定义语言
show databases;-- 查看系统中有哪些数据库
create database test;-- 创建test数据库
use test;-- 选择进入数据库
drop database test;-- 删除数据库
create table department(deptid int,dname varchar(15),num int);-- 创建数据表
show tables;-- 查看当前数据库中有哪些表
desc department;-- 查看表结构
drop table department;-- 删除数据表
create table employee(
empid int primary key auto_increment,
ename varchar(10) unique,
job varchar(10) not null default '-',
mgr int,
hiredate date,
sal float default 0,。
comm float,
deptid int,
foreign key(deptid) references dept(deptno)
);-- 创建带有约束条件的表
数据库操作语言
alter table employee rename emp;-- 修改新表名
alter table 表名 change 原字段名 新字段名 数据类型[自增/非空/默认][字段位置];-- 主键 外键 没有指定修改不会变,位置仅支持first、after 字段名两种,即放在第一位或某个字段的后面
alter table 表名 modify 原字段名 数据类型[自增/非空/默认][字段位置];-- 修改原字段数据类型和约束条件
alter table 表名 add 新字段名 数据类型[自增/非空/默认][字段位置];-- 新增表字段
alter table 表名 drop 字段名;-- 删除表字段
数据库操作语言
insert into 表名(字段1[,字段2,...]) values(数据值1,数据值2,数据值3...);-- 插入表数据
set sql-safe-updates=0;-- 批量执行更新操作,mysql5.8会触发安全机制,需设置数据库安全权限
update 表名 set [列名=值,列名2=值] where [列名=值];-- 更新表数据语句
delete from 表名 where 列名=值;-- 删除表数据,可删除部分数据,仅删除数据
truncate 表名;-- 删除表数据,该方法删除全部数据;truncate 先删除表再创建新表,相比而言truncate执行效率更高
数据库查询语言
全表查询:select * from 表名;
查询指定列:select 字段1 [,字段2,...]from 表名;
别名的设置:select 字段名[as]列别名 from 原表名[as]表别名;别名可以使用关键字as,也可以使用空格,名称不需要加引号。数据库名称、表名称、字段名称都不需要加引号。
查询不重复的记录:select distinct 字段名 from 表名;
条件查询:select 字段1[,字段2,...]from 表名 where 查询条件;
空值查询:select 字段1[,字段2,...]from 表名 where 空值字段 is [not] null;
模糊查询:select 字段1[,字段2,...]from 表名 where 字符串[not] like 通配符;
百分号(%)通配符:匹配多个字符
下划线(_)通配符:匹配一个字符
模糊查询只能用于字符串类型的字段
查询结果排序:select 字段1 [,字段2...] from 表名 order by 字段1[排序方向,字段2,排序方向...];多字段排序时,先按第一个字段排序,第一个字段相同时再按第二个字段排序。指定排序方向:asc升序,desc降序(没有指定排序方向时,默认是asc升序)
限制查询结果数量 select 字段1 [,字段2...] from 表名 limit [偏移量,]行数;limit接受一个或两个数字参数,参数必须是一个整数常量。第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目,如果只给定一个参数,表示返回最大的记录行数目。初始记录行的偏移量是0(而不是1)
运算符包括算数运算符(+、-、*、/)、逻辑运算符(1not非,2and且,3or或)、比较运算符(=、>/>=、</<=、!=/<>、between and)运算符优先级依次为()、算数运算符、比较运算符、逻辑运算符
数据库控制语言控制
select 语句执行顺序
FROM--->WHERE--->GROUP BY--->HAVING--->SELECT--->ORDER BY--->LIMIT
SELECT 要返回的列或表达式 是
FROM 从中检索数据的表或视图 仅从中检索数据时使用
WHERE 行级过滤 仅对记录进行筛选时使用
GROUP BY 分组字段 仅在分组聚合运算时使用
HAVING 组级过滤 仅对分组进行筛选时使用
ORDER BY 输出排序 仅对查询结果进行排序时使用
LIMIT 限制输出 仅对查询结果限制输出时使用








暂无数据