数据库入门
一、DML语言
DML(Data Manipulation Language 数据操纵语言):
主要是对表中的数据进行操纵的,所以往往包含数据的插入、数据的修改、数据的删除。因此我将会从以下几个方面介绍。
1.1 insert插入语句
语法:
#单行插入
insert into 表名 values(数据1,数据2,数据3...)
#多行插入1
insert into 表名 values
(数据1,数据2,数据3...),
(数据1,数据2,数据3...),
(数据1,数据2,数据3...)
...
#多行插入2
inset into 表名
set 列名=值,列名=值, 列名=值,
...
1.2 update修改语句
语法:
#单表修改
update 表名
set 列=新值,列=新值,...
where 筛选条件;
eg:
修改people表中id号为2的名字为魏涛,颜值10
update people set p_name='魏涛',usercp=10
where id = 2
#多表修改
update 表1 别名
inner |left|right join 表2 别名
on 连接条件
set 列 = 值,...
where 筛选条件;
eg
#修改魏涛的女朋友的手机号为114
UPDATE boys bo
INNER JOIN beauty b ON bo.`id`=b.`boyfriend id` SET b.`phone`='114'
WHERE bo.`bdyName`='魏涛';
1.2 delete删除语句
语法:
#单表删除
delete from 表名 where 筛选条件
eg:
删除手机号以9结尾的女生信息
DELETE FROM beauty WheRE phone LIKE '&9';
SELECT * FROM beauty;
#多表删除
delete 表1的别名,表2的别名 from 表1别名
inner|left|right join 表2 别名on 连接条件 where 筛选条件;
eg:
删除 魏涛的信息以及他女朋友的信息
DELETE b,bo FROM beauty b
INNER JOIN boys bo on b. boyfriend id'=bo. id WHERE bo.`boyName`='魏涛";
二、DDL语言
DDL(Data Definition Language 数据库模式定义语言)
主要是对库和表的管理,如表和库的新建删除修改
2.1 库的管理
对库的管理涉及到新建、修改、删除
2.1.1 新建库
在这里插入代码片
create database if not exists 库名;
2.1.2 修改库
#修改库名
rename database 旧名 to 新名
#修改字符集
ALTER DATABASE bOOkS CHARACTER SET gbk;
2.1.3 删除库
语法:
drop database 表名 if exists;
2.2 表的管理
2.2.1 新建表
语法:
create table表名(
列名 列的类型【(长度)约束】
列名 列的类型【(长度)约束】
列名 列的类型【(长度)约束】
列名 列的类型【(长度)约束】
...
)
2.2.2 修改表
语法:
#修改表名
ALTER TABLE 旧表名 RENAME TO 新表名
#修改表列名
Alter TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型
#修改列类型或约束
Alter TABLE book MODIFY COLUMN 列名 类型/约束
#添加新列
Alter TABLE 表名 ADD COLUMN 列名 类型
#删除列
ALTER TABLE 表名 DROP COLUMN 列名
2.2.2 删除表
语法:
DROP TABLE IF NOT EXISTS 表名
2.2.4 复制表
语法:
#复制表结构
CREATE TABLE 表名 LIKE 被复制表名
#复制表结构加数据
CREATE TABLE 表名 SELECT * FROM 被复制表名
#复制表结构加部分数据
在SELECT 后面加 WHERE 条件
2.3 表中字段的常见类型
2.2.1 整型
分类
特点
1、如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字
2、如果插入的数值超出了整型的范围,会报out of range异常,并且插入临界值如果不设置长度,会有默认的长度
长度代表了显示的最大宽度。
3、如果不够会用0在左边填充,但必须搭配zerofill使用!
2.2.2 小数
定点数
浮点数
** 特点**
1、M:整数部位+小数部位 D:小数部位
如果超过范围,则插入临界值
2、M和D都可以省略
如果是decimal,则M默认为10,D默认为0
如果是float和double,则会根据播入的数值的精度来决定精度
3、定点型的精确度较高,如果要求插入数值的精度较高如货币运算等则考虑使用
2.2.3 字符型
分类
1.较短文本(char | vachar)
char是固定字符 vachar是可变类型的
特点
**2.较长文本(text blob(二进制数据)) **
**3.枚举类型 **
第四条插入的值为m,不在枚举内。则会报错
** set类型(集合类型)**
eg:
** 日期类型**
特点
2.2 表的常见约束