做ppt找图片的网站,手机上编程软件,上海工程建设执业资格注册中心网站,那个视频网站做公开课比较好目录 数据库的四种语言常用约束#xff08;DDL#xff09;创建格式PRIMARY KEY#xff1a;主键约束FOREIGN KEY#xff1a;外键约束主键外键 联合测试开始测试 NOT NULL#xff1a;非空约束UNIQUE#xff1a;唯一约束DEFAULT#xff1a;默认值约束zerofill 零填充auto_i… 目录 数据库的四种语言常用约束DDL创建格式PRIMARY KEY主键约束FOREIGN KEY外键约束主键外键 联合测试开始测试 NOT NULL非空约束UNIQUE唯一约束DEFAULT默认值约束zerofill 零填充auto_increment 自增加 数据类型数值型(int)字符串类型(varchar)时间和日期类型(date)浮点数类型(decimal)枚举类型(ENUM)集合类型(SET) 面试知识点导入数据库抹除数据alter 加入一个字段 注意事项 数据库的四种语言
DDL语句 数据库定义语言 数据库、表、视图、索引、存储过程例如CREATE DROP ALTER DDLdata definition language DML语句 数据库操纵语言 插入数据INSERT、删除数据DELETE、更新数据UPDATE DMLdata manipulation language DQL语句 数据库查询语言 查询数据SELECT DQLData Query Language 数据查询语言 SELECT DCL语句 数据库控制语言 例如控制用户的访问权限GRANT、REVOKE DCLData Control Language
常用约束DDL
表的定义 表格约束
创建格式
字段名 字段类型 长度字段约束组成可选
create table {库名}.{表名}({字段名} {字段类型、长度} {字段约束组成可选}{第二个字段}第三个字段)
实例
create table idol(name varchar(20) NOT NULL);PRIMARY KEY主键约束
主见的约束 特征 不能重复 且不能为空 适用于用户昵称 [使用方法 只能出现一次 第二次 如果想使用在两行就需要在最后单独声明]
create table student6(
id int primary key auto_increment not null,
name varchar(50) not null,
sex enum(male,female) not null default male,
age int not null default 18
);desc student6;insert into student6 values (1,alice,female,22);select * from student6;insert into student6(name,sex,age) values(king,male,1002);select * from student6;
primary key //只能使用一次#第二种写法create table student7(
id int auto_increment not null,
name varchar(50) not null,
sex enum(male,female) not null default male,
age int not null default 18
primary key(id)
);#符合组件 写法 //作用 两列 id不一样 name一样也是可以的
create table student8(
id int auto_increment not null,
name varchar(50) not null,
sex enum(male,female) not null default male,
age int not null default 18,
primary key(id,name)
);desc student8;
insert into student8 (name,sex,age) values (ww,male,18);select * from student8;#使用默认 属性
create table student9(
id int auto_increment not null,
name varchar(50) not null,
sex enum(male,female) default male,
age int default 18,
primary key(id,name)
);desc student9;insert into student9(name) values(wakaa);select * from student9;FOREIGN KEY外键约束
#可以为空但是不能重复
create table department(
dept_id int,
dept_name varchar(30) unique,
comment varchar(50)
);desc department;insert into department values(1,king,sdfasdf);
insert into department values(2,kk,sdfasdf);
select * from department;insert into department values(1,NULL,sdfasdf);
select * from department;#第二种写法是可以写在下边的 和 PRIMARY一样的写法
create table department22(
dept_id int,
dept_name varchar(30) ,
comment varchar(50),
unique (dept_name)
);主键外键 联合测试
#作用 关联 主键删除 外键也可以删除
#使用方法 外键指向主键 即可生效#第一个表格设置create table employees(
name varchar(50) not null,
mail varchar(20),
primary key(name)
)engineinnodb;engineinnodb;//指定搜索引擎 如果一个加了 另外一个没有加 会导致实验失败
#第二个表格设置create table payroll(
id int not null auto_increment,
name varchar(50) not null,
payroll float(10,2) not null,
primary key(id),
foreign key(name) references employees(name) on update cascade on delete cascade
)engineinnodb;#查看两个表格类型 desc
desc employees;
desc payroll;开始测试
#给两个表格中写入内容insert into employees values(k,kking.com);
insert into payroll values(1,k,80000.23);#查看两个表格select * from employees;
select * from payroll;#更新 更改 第一个表格update employees set nameking where namek;#查看两个表格select * from employees;
select * from payroll;#删除第一个表格delete from employees where nameking;#查看两个表格select * from employees;
select * from payroll;DROP TABLE payroll;
DROP TABLE employees;
show tables;如果主表格没有同名数据 附表格 则会插入数据失败
如果直接删除 则会删除失败
如果进行修改则会报错
NOT NULL非空约束
表明这个字段不能为空必须填入内容 如果再插入数据的时候没有内容则会报错
create table idol(name varchar(20) NOT NULL);UNIQUE唯一约束
表示此列每个内容都不一样 一般作为索引可以增加数据库的查询速度
创建表
create table idol(id int UNIQUE
name varchar(20) NOT NULL
);
插入数据 添加约束
insert into t2 VALUES (1,wang),(2,li);
插入同样id 测试唯一约束
insert into t2 values (1,fei)最后报错DEFAULT默认值约束
制作表格
create table t3(
id int,
myname varchar(20),
relation varchar(40) DEFAULT陌生人
);插入数据
insert into t3(id,myname) VALUES (1,xiaomign);查看表格
select * from t3;zerofill 零填充
零填充如果设置三位 并且使用零填充约束 则会在前边 自动填充零
# 创建表格
create table ta(id int(3) zerofill);
# 插入数据
insert into ta values(1);
# 查看表的结构
desc ta;
#查看表内容
select * from ta;auto_increment 自增加
--进入某库中
use datebase;
--生成表格
create table ttt1(
id int primary key auto_increment,
name varchar(40)
);
--插入数据
insert into ttt1(name) VALUES (liubang),(xiaohe),(liuche);
--查看表格
select * from ttt1;
--插入数据数据类型
数值型(int)
常用数据类型: tinyint(有符号型最大值127), int有符号型最大值2147483647)
create table test1(
tinyint_test tinyint,
int_test int
);字符串类型(varchar)
常用的 char varchar
#创建表格
CREATE TABLE king.string (
id int ,
str1 char,
str2 varchar(20));
#查看表格类型
desc king.string;
# 插入数据 由于char 如果没设置 则只能插入一个数据 所以这里 插入一个a
insert into king.string VALUES (1,a,aa);
#打印表格
select * from king.string;# 修改 char 可以插入四个数据
ALTER TABLE king.string MODIFY str1 char(40);
#插入两个末尾带空格的字符 看看数据库怎么保存
insert into king.string VALUES (1,aaa ,aaa );#查看两个字符长度
#查看第一个
SELECT LENGTH(subquery_alias.str1) AS result_length
FROM (SELECT str1 FROM king.string WHERE id1) AS subquery_alias;
#查看第二个
SELECT LENGTH(subquery_alias.str2) AS result_length
FROM (SELECT str2 FROM king.string WHERE id1) AS subquery_alias;DELETE from king.string where str1a时间和日期类型(date)
year、date、time、datetime、timestamp
CREATE TABLE king.time1(
t1 date, t2 time ,t3 datetime, t4 year ,t5 timestamp
);
desc king.time1;insert into king.time1(t1,t2,t3,t4) VALUES (now(),now(),now(),now());select * from king.time1;浮点数类型(decimal)
#创建表格 以小数储存
CREATE TABLE king.num1(num1 decimal(20,10));
#插入数据
insert into king.num1 VALUES (12.3123123);
insert into king.num1 VALUES (151.313232323123);
#打印表格内容
select * from king.num1; 枚举类型(ENUM)
只能选择一个
CREATE TABLE king.my1 (
id int PRIMARY KEY auto_increment COMMENT 主键 自增,
name VARCHAR(20) NOT NULL,
sex ENUM(男,女) NOT NULL DEFAULT 男,
hobby SET(nusic,game,eat,mv) NOT NULL
)ENGINEINNODB
# 查看表格结构
desc king.my1;
# 插入数据
insert into king.my1(name,sex,hobby) values (huahua,女,nusic,game);
# 查看表格
select * from king.my1;集合类型(SET)
可以选择多个
CREATE TABLE king.my1 (
id int PRIMARY KEY auto_increment COMMENT 主键 自增,
name VARCHAR(20) NOT NULL,
sex ENUM(男,女) NOT NULL DEFAULT 男,
hobby SET(nusic,game,eat,mv) NOT NULL
)ENGINEINNODB
# 查看表格结构
desc king.my1;
# 插入数据
insert into king.my1(name,sex,hobby) values (huahua,女,nusic,game);
# 查看表格
select * from king.my1;面试知识点
导入数据库
mysql -pmiam date.sql##抹除数据
#如果使用delete 浪费时间浪费服务器资源
delete from {表名};
#抹除数据 从磁盘上抹除
truncate {表名};alter 加入一个字段 注意事项
不要再高峰期执行 执行原理是 把原有的表复制一份把新的字段 插入 然后把 原来的字段删除了。
alter table {表名} ADD {新字段名} {约束条件} {位置};
ALTER TABLE employees ADD job VARCHAR(20) NOT NULL AFTER name;