mysql数据库操作(十)

版权声明:版权由我个人所有,未经允许不得用于除学习外的其他用途,望周知。 https://blog.csdn.net/weixin_44515563/article/details/89499388

一、含义
union: 合并、联合,将多次查询结果合并成一个结果
二、语法
查询语句1
UNION 【all】
查询语句2
UNION 【all】
。。。
三、意义
1.将一条比较复杂的查询语句拆分成多条
2.适用于查询多个表的时候,查询的列基本一致

四、特点
1、要求多条查询语句的查询列数必须一致
2、要求多条查询语句的查询的各列类型、顺序最好一致
3、union 去重 UNION ALL 包含重复项

查询语法:

SELECT 查询列表 ------>7

FROM 表1 别名 ------>1

连接类型 JOIN 表2 ------>2

ON 连接条件 ------>3

WHERE 筛选 ------>4

GROUP BY 分组列表 ------>5

HAVING 筛选 ------>6

ORDER BY 排序 ------>8

LIMIT 起始条目索引,条目数 ------>9

一、方式一
语法:
INSERT INTO 表名(字段名。。。) VALUE(值。。。。)

特点:
1、要求值的类型和字段的类型要一致或兼容
2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致
但必须保证值和字段一一对应
3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值
1.字段和值都可以省略
2.字段写上,值使用null
4、字段和值的个数必须一致
5、字段名可以省略。默认所有列

二、方式二
语法:
INSERT INTO 表名 SET 字段=值,字段=值。。。。。。。

两种方式的区别
1.方式一支持一次插入多行,语法如下:
INSERT INTO 表名【字段名,。。。。】values(值。。),(值。。。),…

2.方式一支持子查询,语法如下:
INSERT INTO 表名
查询语句;
一、修改单表的记录
语法:update 表名 SET 字段=值,字段=值【where 筛选条件】;

二、修改多表的记录【补充】
语法;
UPDATE 表1 别名
LEFT|RIGHT|INNER JOIN 表2 别名
ON 连接条件
SET 字段=值,字段=值
【where 筛选条件】

删除
方式一:使用delete
一、删除单表的记录
语法:delete FROM 表名 【筛选条件】【limit 条目数】

二、删除多表的记录【级联删除】
	语法:
	DELETE 别名1,别名2 FROM 表1 别名
	INNER|LEFT|RIGHT 表2 别名
	ON 连接条件
	【where 筛选条件】

方式二;使用truncate
语法:
TRUNCATE TABLE 表名

两种方式的区别

1.truncate 删除后,如果再插入,标识列从1开始
DELETE 删除后,如果再插入,标识列从断点开始
2.delete 可以添加筛选条件
TRUNCATE 不可以添加筛选条件
3.truncate效率较高
4.truncate 没有返回值
DELETE 可以返回受影响的行数
5.truncate 不可以回滚
DELETE 可以回滚

一、创建库
CREATE database【if NOT exists】 库名 【character SET 字符集名】

二、修改库

ALTER DATABASE 库名 CHARACTER SET 字符集名

三、删除库
DROP DATABASE [IF EXISTS] 库名;

一、创建表
CREATE TABLE [IF NOT EXISTS] 表名(
字段名 字段类型 【约束】,
字段名 字段类型 【约束】,

字段名 字段类型 【约束】
);

二、修改表
1、添加列
ALTER TABLE 表名 ADD COLUMN 列名 类型 【first|AFTER 字段】;

2.修改列的类型或约束

ALTER TABLE 表名 MODIFY COLUMN 列名 新类型 【新约束】、

3.修改列名
ALTER TABLE 表名 MODIFY COLUMN 旧列名 新列名 类型;

4.删除列
ALTER TABLE 表名 DROP COLUMN 列名;

5.修改表名
ALTER TABLE 表名 RENAME [TO] 新表名;

三、删除表
DROP TABLE [IF EXISTS] 表名;

四、复制表
1.复制表的结构
CREATE TABLE 表名 LIKE 旧表;

2.复制表的结构+数据
CREATE TABLE 表名

SELECT 查询列表 FROM 旧表 【where 筛选】;

数据类型
一、数值型
1.整形
TINYINT SMALLINT MEDIUMINT INT/INTEGER BIGINT
1 2 3 4 8

特点:
1.都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
2.如果超出了范围,会报out OR RANGE 异常,插入临界值
3.长度可以不指定,默认会有一个长度
长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofull,并且默认变为无符号整型

2.浮点型
定点数:decimal(M,D)
浮点数:
FLOAT(M,D) 4
DOUBLE(M,D) 8
特点:
1.M代表整数部位+小数部位的个数,D代表小数部位
2.如果超出范围,则报out OR RANGE 异常,并且插入临界值
3.M和D都可以省略,但对于定点数,M默认为10,D默认为0
4.如果精度要求较高,则优先考虑使用定点数

二、字符型

CHAR VARCHAR BINARY VARBINARY ENUM SET TEXT BLOB

CHAR :固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,默认为1
VARCHAR:可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略

日期型
year年
date日期
time时间
DATETIME 日期+时间 8
TIMESTAMP 日期+时间 4 比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间

猜你喜欢

转载自blog.csdn.net/weixin_44515563/article/details/89499388