当前位置: > 数据库 > MySQL >

对表和库(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)
------分隔线----------------------------
栏目列表
推荐内容