一.DML 更新表记录
㈠. 插入表记录: insert into
❶.插入部分字段的值:
insert into 表名 (字段1,字段2) values('值1','值2')
❷.插入全部字段的值:
insert into 表名 values('值',...)
代码示例:
create table a(
id int,
cname varchar(100)
);
第一种写法:
insert into a(id,cname) values(1,'月亮')
insert into a(id,cname) values('月亮',1)
注意:第一种写法values()里的值没有顺序要求
第二种写法:
insert into a values(1,'月亮')
insert into a values('月亮',1) # 报错
注意:第二种写法 不写字段 values()里的值默认按照表中字段的顺序
❸.注意:
• 值与字段必须对应 个数相同 类型想同
• 值的数据大小必须在字段的长度范围内
• 除了数值类型外 其它字段类型的值必须使用单引号/双引号(字符串 日期)
• 如要插入空值 可以不写字段或插入null
• 一次可以插入多条数据
如 insert into a values(2,'小毛'),(3,'大毛'),(4,'老毛')
㈡.更改表记录: update
用来修改指定条件的数据 将满足条件的记录指定列修改为指定值
语法:
❶.更新所有记录的指定字段
undate 表名 set 字段 = 值
❷.更新符合条件记录的指定字段
undate 表名 set 字段 = 值 where 条件
❸.更新多个字段 用逗号隔开
undate 表名 set 字段1 = 值1,字段2 = 值2 where 条件
❹.注意:
• 列名的类型与修改的值要一致
• 修改值的时候不能超过最大长度
• 除了数值类型外,其它的字段类型的值必须使用引号引起
• 在字段值为null的一条记录上修改 需要使用is
如 update a set cname = 'aa' where cname is null
㈢.删除表记录: delete from
语法:
❶.逐条删除表中所有记录
delete from 表名
❷.逐条删除表中符合条件的记录
delete from 表名 where 条件
注意: 如查询条件为多个 需要使用逻辑运算符or
如 delete from a where id = 4 or id = 6
二. DQL-查询数据
㈠.查询数据
语法
❶.查询并展示表中所有记录
select * from 表名
❷.查询并展示表中符合要求的记录
select * from 表名 where 条件
㈡. 简单查询
❶.别名查询
别名相当于外号 使用的关键字是as(as可以省略) 表别名(用于多表查询):
select * from 表名 as 别名
❷.列别名
select 列名 as 别名 from 表名
❸.去掉重复值(不会改变原有的记录)
select disstinct 列名 from 表名
❹.运算查询
select 列名 + 数值 from 表名
㈢.条件查询 where
㈠.比较运算符
❶. > 大于
< 小于
<= 小于等于
=> 大于等于
= 赋值
!= 不等于
❷. between ...and... 显示在某一区间的值(含头含尾)
❸. in(set) 显示在in列表的值
❹. like '张 pattren' 模糊查询
like语句中 %表示零个或多个任意字符 _代表一个字符
❺. is null 判断是否为空
㈡.逻辑运算符
❶. dan 多个条件同时成立
❷. or 多个条件任一成立
❸. not 不成立 取反
三.SQL约束和策略
㈠.SQL约束含义及种类:
约束用于限制加入表的数据的类型 如果存在违反约束的数据行为 行为会被约束终止
约束种类: • 主键约束 primary key
• 非空约束 not null
• 唯一性约束 unique
• 外键约束
㈡. 主键约束 primary key
用来标识数据库中每条记录是唯一不重复的
注意: 实际开发中每个表只有一个主键
主键特点: • 唯一
• 不能为空
❶.添加主键约束
方式一: 创建表时 在字段描述处 声明指定字段为主键
语法: 字段 字段类型 primary key
如 create table p1(
id int primary key,
namr varchar(200)
)
方式二: 创建表时 声明指定字段为主键
语法: primary key (字段)
如 create table p2(
id int,
name varchar(200),
primary key(name)
)
方式三: 创建表后 通过修改表结构 声明指定字段为主键
如 create table p3(
id int,
name varchar(200)
)
alter table p3 add primary key (id)
联合主键: 多个字段共同作为主键 单个字段的值可以重复 联合起来的值不能重复
格式: primary key (字段1,字段2)
如 create table p3(
id int,
name varchar(200),
primary key(id,name)
)
注意: 不可以采用方式一设置主键 只能采用方式二和方式三
❷.删除主键约束
格式: alter table 表名 drop primary key;
注意: 主键约束一旦确定 实际开发中不会轻易删除
㈡. 非空约束 not null
not null 约束强制列不接受 null值
not null 约束强制字段始终包含值 (如不向字段添加值 就无法插入新的记录或更新记录)
如 使用not null使 'name'列不接受 null值
create table p4(
id int,
name varchar(200) no null
)
insert into p4 values(1,null) # 报错 name 值不能为 null
insert into p4 values(null,'月亮') # 不报错 id 可以为 null
㈢.唯一约束 unique
unique 约束唯一标识数据库中的每条记录
unique 和 primary key 约束都可以标识当前字段唯一 不重复
注意: • 每个表可以有多个 unique 约束
• 每个表只能有一个primary key 约束
• 唯一约束 会忽略null 值
主键约束和唯一约束区别:
• 主键约束是唯一且不能为空 一个表只能有一个主键
• 唯一约束是唯一可以为空 一个表可以有多个约束
❶.添加唯一约束
方式一: 创建表时,在字段描述处,声明唯一
如 create table p5(
id int,
namr varchar(200)unique
)
方式二: 创建表是时 在约束区域 声明唯一
如 create table p6(
id int,
name varchar(20),
unique(id)
)
方式三: 创建表后 修改表结构 声明字段唯一
如 create table p6(
id int,
name varchar(20)
)
alter table p7 add unique(name)
❷.删除唯一约束
格式: alter table 表名 dpop index 列名
注意: • 如添加唯一约束时 没有设置约束名称 默认是当前字段的字段名
• 实际开发中一旦设置唯一约束 不会轻易删除
㈣.自动增长-策略
如需在每次插入新记录时 数据库自动生成字段的值 可以在表中使用 auto_increment(自动增长列)关键字
注意:
• 自动增长列类型必须是整形
• 自动增长列必须为键(可以是唯一约束 可以是主键约束)
如 create table p8(
id int primary key auto_increment,
name varchar(200)
)
注意:
• 向p8添加数据时 可以不为id字段设置值 也可以设置成 null 数据库将自动维护主键值
• 计数器从1开始增
• delete 不会清空自动增长的值