目录
1.5.4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。
一.DDL
1.1概述
DDL(Data Define Languge):数据定义语言,用于库和表的创建、修改、删除
关键字:create, drop,alter等
1.2数据库操作
1.创建数据库
#格式
create database 数据库名称 character set 字符集名称;
#举例
create database db_demo character set utf8;
#添加判断
create database if not exists 数据库名称 character set 字符集名称;;
2.修改数据库编码:
#格式
alter database 数据库 名称 character set 新字符集名称
#举例
create database xixi character set utf8;
alter database xixi character set Unicode;
3.删除数据库:
#格式
drop database 数据库名称
#加上判断
drop database if exists 数据库名称;
4.查询数据库
#查看所有数据库
show databases
#查看创建数据库语句
show create database 数据库名称
5.查看正在使用的数据库:
select database();
6.使用某数据库
use 数据库名称;
1.3数据表操作:
创建表
#格式
create table 表名(
字段1 类型 约束,
字段2 类型 约束,
..............
字段n 类型 约束
);
修改表:
#修改表名
alter table 表名 rename to 新名;
#修改列名和类型
alter table 表名 change 列名 新名 新类型;
#只修改类型
alter table 表名 modify 列名 新类型;
#修改表的字符集
alter table 表名 character set 字符集;
#增加一列
alter table 表名 add 列名 类型;
#删除一列
alter table drop 列名;
#删除表
drop table 表名;
drop table if exists 表名;
查询:
#查询所有表
show tables;
#查询某个数据库的所有表
show tables from 数据库名称
#查询表结构
desc 表名称
1.4常用数据类型
类型 | 说明 |
int | 整数类型 |
double | 浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99; |
decimal | 泛型型(浮点型),在表单钱方面使用该类型,因为不会出现精度缺失问题; |
char | 固定长度字符串类型;长度默认255。 |
varchar | 可变长度字符串类型;(65535) |
date | 日期类型,格式为:yyyy-MM-dd; |
1.5约束
概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。
分类:
1.5.1.主键约束:primary key
特点:
1. 含义:非空且唯一
2. 一张表只能有一个字段为主键
3. 主键就是表中记录的唯一标识
#在创建表时添加主键
create table 表名(
字段1 类型 primary key
);
#创建表后添加主键
alter table 表名 modify 列名 类型 PRIMARY KEY;
#删除主键
alter table 表名 drop PRIMARY KEY;
#自动增长:如果某一列是数值类型的,使用 auto_increment 可以来完成值得自动增长
#在创建表时,添加主键约束,并且完成主键自增长
create table stu(
id int primary key auto_increment,-- 给id添加主键约束
name varchar(20)
);
# 删除自动增长
ALTER TABLE stu MODIFY id INT;
#添加自动增长
ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;
1.5.2.唯一约束:unique
特点:
1.某一列的值不能重复
2.唯一约束可以有NULL值,但是只能有一条记录为null
#创建表时添加唯一约束
create table 表名(
字段1 类型 unique
);
#创建表后添加唯一约束
alter table 表名 modify 列名 类型 unique;
#删除唯一约束
alter table 表名 drop index unique;
1.5.3.非空约束:not null某一列值不能为空
#创建表时添加非空约束
create table 表名(
字段1 类型 not null
);
#创建后添加
alter table 表名 modify 列名 类型 not null;
#删除非空约束
alter table 表名 modify 列名 类型;
1.5.4.外键约束:foreign key,让表于表产生关系,从而保证数据的正确性。
# 在创建表时添加外键
create table 表名(
....
外键列
constraint 外键名称 foreign key (外键列名称) references 主表名称(主表列名称)
);
#删除外键
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
#创建表之后,添加外键
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);
#级联操作
#1. 添加级联操作
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) ON UPDATE CASCADE ON DELETE CASCADE;
#分类
#1. 级联更新:ON UPDATE CASCADE
#2. 级联删除:ON DELETE CASCADE
二.DML
2.1.概述:
-
DML(Data Manipulate Language):数据操纵语言,用于添加、删除、修改数据库记录,并检查数据完整性
关键字:insert, delete, update 等
2.2.常用操作
添加数据
#语法
insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
* 注意:
1. 列名和值要一一对应。
2. 如果表名后,不定义列名,则默认给所有列添加值
insert into 表名 values(值1,值2,...值n);
3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来
修改数据:
* 语法:
* 修改单表: update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
* 修改多表: update 表1 别名1,表2 别名2 set 字段=新值,字段=新值 where 连接条件 and 筛选条件
* 注意:
1. 如果不加任何条件,则会将表中所有记录全部修改来
删除数据
* 语法:
* delete from 表名 [where 条件]
* 注意:
1. 如果不加条件,则删除表中所有记录。
2. 如果要删除所有记录
1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。
* 面试题:delete与TRUNCATE区别?
1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
4.delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
5.truncate删除不能回滚,delete删除可以回滚