一 回顾
1.sql语句分类
DDL 主要用于操作数据库 以及数据库表
DML 主要用于操作数据库表中数据 增加 删除 修改
DQL 主要用于操作数据库表中数据 查询
DCL 主要是用于操作用户管理 以及权限管理
2.DDL-对表的操作
A.创建表
create table 表名(
列名 数据类型(长度),
.....
);
B.查询所有表 show tables
C.删除表 drop table 表名
D.修改表名 alter table 表名 rename to 新的表名
3.DDL-对表中列的操作
A.增加列 alter table 表名 add 列名 数据类型(长度)
B.在指定列后增加 alter table 表名 add 列名 数据类型(长度) after 原有的列名
C.修改列名 alter table 表名 change 原列名 新列名 数据类型(长度)
D.删除列 alter table 表名 drop 列名
4.DML-对表中数据进行操作 增加 删除 修改
增加: insert into 表名(列名...)values(值....)
修改: update 表名 set 列名= 值 ... where 条件
删除: delete from 表名 where 条件
truncate table 表名
5.单表的查询:
查询语句顺序: select * from 表名 where 条件 group by 分组 + having +过滤(is null)+order by +排序+limit +分页
模糊查询
like ?
% 匹配 0个或者多个字符
_ 匹配一个字符
去重 distnict
between and 两者之间
in 连接多个条件 or
not 非
is null 是空 is not null 非空
6.函数: 聚合函数 时间函数 字符串函数
7.约束:
主键约束: primary key auto_increment
特点: 唯一 非空 一张表中只有一个主键
增加主键约束: alter table 表名 add primary key(列名)
删除主键约束: alter table 表名 drop primary key
二 五大约束
2.1 主键约束
1.特点:唯一 非空 一张表中只有一个主键
2.2 唯一约束
1. 关键字 unique2. 特点 : 唯一 不能重复 可以为 null (可以有多个null)3. 主键约束与唯一约束的区别A.主键约束 一张表中只能有一个 唯一约束一张表中可以有多个B.主键约束不能为空 唯一约束是可以设置空C.唯一约束可以设置为联合唯一约束 ( 多个列组成约束条件 )4. 唯一约束两种创建方式 A. 创建表的时候设置 B. 表创建完成之后设置
第一种方式
#创建唯一约束
create table p1(
pid int(11) primary key auto_increment,
pname varchar(20) unique
);
第二种方式
CREATE TABLE p2(
pid INT(11) PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20)
);
语法:
alter table 表名 add CONSTRAINT 唯一约束的名称 unique(列名)
#增加唯一约束
ALTER TABLE p2 ADD CONSTRAINT u_name UNIQUE(pname)
语法:
alter table 表名 drop index 唯一约束的名称
#删除唯一约束
ALTER TABLE p2 DROP INDEX u_name
联合唯一约束 (条件:两个重复才会报错)
CREATE TABLE p3(
pid INT(11) PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20),
pwd VARCHAR(20),
UNIQUE(pname,pwd)
);
INSERT INTO p3(pname,pwd)VALUES("你好","123");
验证唯一约束的特点
2.3 非空约束
1. 关键字 : not null2. 作用 : 插入数据的时候必须插入数据 不能插入 null3. 在创建表的时候进行设置
非空约束
#非空约束
CREATE TABLE p4(
pid INT(11) PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL
);
INSERT INTO p4(pname)VALUES(NULL)
2.4 默认约束
1. 关键字 :default2. 作用 : 用于设置列的默认值3. 在创建表的时候进行设置4. 说明 :A.指定列设置默认约束之后 未插入数据 显示默认值B.指定列设置默认约束之后 插入 default 也是默认值C.插入具体的数据时候 才会替换默认值