对表和库(DML,DDL)的基本操作以及联合查询
时间:2019-05-17 13:26 来源:linux.it.net.cn 作者:IT
联合查询,DML,DDL(对表和库的操作大全)
这次把上次没有提到的联合查询补充一下,然后主要来讲DML和DDL,就是主要讲一下对表和库的基本操作,例如增删改这些,有针对不同情况的不同方法和例子,复习和速查用起来应该比较方便,继续往下看吧~
联合查询
将多条查询语句的结果合并成一个结果
用于信息来源于多个表且这些表没有直接的连接关系
语法:
查询语句1
union
查询语句2
union
…
特点:
eg:
1. 要求多条查询语句的查询列数
2. 要求多条查询语句的每一列的类型和顺序最好一致
3. union会自动去重,用 union on 可以包含重复项
select * from employees where like '%a%'
union
select * from employees where department_id > 90;
1
2
3
等价于
select * from employees where like '%a%'
or where department_id > 90;
DML语言
数据操作语言:
插入 insert
修改: update
删除: delete
1.1 插入方式1:
语法:insert into 表名(列名,…)
values(值1,…)
特点:
插入值的类型和列类型务必一致
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'椎名林檎','女','1975-10-12','13256498798',NULL,NULL);
不可以为null的值必须乖乖填好,可以为null的话写列名填值或者不写列名不写值二选一
INSERT INTO beauty(id,NAME,sex,borndate,phone)
VALUES(14,'仓桥','女','1970-11-12','13256495238');
列的顺序可以调换
INSERT INTO beauty(NAME,id,phone,sex)
VALUES('桥本环奈',15,'1999-5-6','女');
列数和值数必须相等
可以省略写列名,意思是默认所有列都要写,且顺序不可以调换,可以为null的写null
INSERT INTO beauty
VALUES(16,'斋藤飞鸟','女','1998-10-23','13256498798',NULL,NULL);
1.2 插入方式2:
语法:insert into 表名
set 列名1 = 值1,列名2 = 值2,…
eg:
INSERT INTO beauty
SET id = 17,NAME = '安娜苏',phone = '78456611233';
两种方式差别
方式1可以写多行值value(…),(…)…,方式二不行
方式1支持子查询,而2不支持
eg:这个也算一种有趣的插入方法
insert into beauty (id,name,phone)
select 26,'东方朋子','1532456';
2.1.修改单表记录
语法:
update 表名
set 列 = 新值,列 = 新值,…
where 筛选条件;
2.2.修改多表记录
语法:
update 表1,表2,…
连接条件
set 列名 = 值
where 筛选条件
3.1单行删除
语法:
delete from 表名 where 筛选条件
3.2多行删除
语法2:
delete 表1的别名,表2的别名
from 表1 别名
where 连接条件
and 筛选条件
3.1单表删除
语法1:
truncate table 表名;** truncate不能加where**
语法2:
delete from 表名
若有自增长列,用delete删,会从删除处开始,truncate从1开始
truncate删除无返回值,delete有
truncate删除不能回滚
DDL语言(库和表的管理)
库的管理:
1. 库的创建
语法:
create database [if not exists]库名;
2. 库的修改(更改字符集utf-8,…)
语法:
alter database 库名 character set 新的字符集;
2. 库的删除
语法:
drop database [if exists]库名;
4. 创建表()
语法1:
create table 表名(
列名 类型 [(长度),约束],
…
);
语法2:(可以跨表)
create table 表名
select…
from …
…
varchar(长度) 字符型
desc 表名 //查看表
4. 修改表
4.1 修改列名
语法:
alter table 表名 change column 旧列名 新列名 【列值类型】
4.2 修改列类型或约束
语法:
alter table 表名 modify column 列名 列值新类型
4.3 添加新列
语法:
alter table 表名 add column 列名 【列值类型】
4.4 删除列
语法:
alter table 表名 drop column 列名
4.1 修改表名
语法:
alter table 旧表名 rename to 新表名
5.1 表的删除
语法:
drop table if exists 旧表名;
create table 表名();
对照下库的删除
语法:
drop database if exists 旧库名;
create database 新库名;
6.1表的结构复制
create table 复制库 like 原库;
6.2表的结构内容全复制
create table 复制库
select * from 原库;
6.3表的部分数据
create table 复制库
select …
from 原库
where …;
6.4表的部分字段复制
create table 复制库
select …
from 原库
where 0;
(责任编辑:IT)
联合查询,DML,DDL(对表和库的操作大全) 这次把上次没有提到的联合查询补充一下,然后主要来讲DML和DDL,就是主要讲一下对表和库的基本操作,例如增删改这些,有针对不同情况的不同方法和例子,复习和速查用起来应该比较方便,继续往下看吧~ 联合查询 将多条查询语句的结果合并成一个结果 用于信息来源于多个表且这些表没有直接的连接关系 语法: 查询语句1 union 查询语句2 union … 特点: eg: 1. 要求多条查询语句的查询列数 2. 要求多条查询语句的每一列的类型和顺序最好一致 3. union会自动去重,用 union on 可以包含重复项 select * from employees where like '%a%' union select * from employees where department_id > 90; 1 2 3 等价于 select * from employees where like '%a%' or where department_id > 90; DML语言 数据操作语言: 插入 insert 修改: update 删除: delete 1.1 插入方式1: 语法:insert into 表名(列名,…) values(值1,…) 特点: 插入值的类型和列类型务必一致 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'椎名林檎','女','1975-10-12','13256498798',NULL,NULL); 不可以为null的值必须乖乖填好,可以为null的话写列名填值或者不写列名不写值二选一 INSERT INTO beauty(id,NAME,sex,borndate,phone) VALUES(14,'仓桥','女','1970-11-12','13256495238'); 列的顺序可以调换 INSERT INTO beauty(NAME,id,phone,sex) VALUES('桥本环奈',15,'1999-5-6','女'); 列数和值数必须相等 可以省略写列名,意思是默认所有列都要写,且顺序不可以调换,可以为null的写null INSERT INTO beauty VALUES(16,'斋藤飞鸟','女','1998-10-23','13256498798',NULL,NULL); 1.2 插入方式2: 语法:insert into 表名 set 列名1 = 值1,列名2 = 值2,… eg: INSERT INTO beauty SET id = 17,NAME = '安娜苏',phone = '78456611233'; 两种方式差别 方式1可以写多行值value(…),(…)…,方式二不行 方式1支持子查询,而2不支持 eg:这个也算一种有趣的插入方法 insert into beauty (id,name,phone) select 26,'东方朋子','1532456'; 2.1.修改单表记录 语法: update 表名 set 列 = 新值,列 = 新值,… where 筛选条件; 2.2.修改多表记录 语法: update 表1,表2,… 连接条件 set 列名 = 值 where 筛选条件 3.1单行删除 语法: delete from 表名 where 筛选条件 3.2多行删除 语法2: delete 表1的别名,表2的别名 from 表1 别名 where 连接条件 and 筛选条件 3.1单表删除 语法1: truncate table 表名;** truncate不能加where** 语法2: delete from 表名 若有自增长列,用delete删,会从删除处开始,truncate从1开始 truncate删除无返回值,delete有 truncate删除不能回滚 DDL语言(库和表的管理) 库的管理: 1. 库的创建 语法: create database [if not exists]库名; 2. 库的修改(更改字符集utf-8,…) 语法: alter database 库名 character set 新的字符集; 2. 库的删除 语法: drop database [if exists]库名; 4. 创建表() 语法1: create table 表名( 列名 类型 [(长度),约束], … ); 语法2:(可以跨表) create table 表名 select… from … … varchar(长度) 字符型 desc 表名 //查看表 4. 修改表 4.1 修改列名 语法: alter table 表名 change column 旧列名 新列名 【列值类型】 4.2 修改列类型或约束 语法: alter table 表名 modify column 列名 列值新类型 4.3 添加新列 语法: alter table 表名 add column 列名 【列值类型】 4.4 删除列 语法: alter table 表名 drop column 列名 4.1 修改表名 语法: alter table 旧表名 rename to 新表名 5.1 表的删除 语法: drop table if exists 旧表名; create table 表名(); 对照下库的删除 语法: drop database if exists 旧库名; create database 新库名; 6.1表的结构复制 create table 复制库 like 原库; 6.2表的结构内容全复制 create table 复制库 select * from 原库; 6.3表的部分数据 create table 复制库 select … from 原库 where …; 6.4表的部分字段复制 create table 复制库 select … from 原库 where 0; (责任编辑:IT) |