参考的相关视频资料连接
insert into 表名(列名1, 列名2, ...) values (值1, 值2, ...);
insert into beauty values(列1, 列2, ...); //省略列名,默认所有列
insert into 表名 set 列名1=值1,列名2=值2,...
insert into beauty set id=19, name='章子怡',phone='110';
update 表名 set 列=新值,列=新值,... where 筛选条件;
update boys set boyname='张飞', usercp=10 where id=2;
sql92语法: update 表1 别名, 表2 别名 set 列=值,... where 连接条件 and 筛选条件 sql99语法: update 表1 别名 inner 连接类型 join 表2 别名 on 链接条件 set 列=值,...
语法: delete from 表名 where 筛选条件
delete from girls where phon like '%3';
语法:truncate table 表名
truncate table boys;
create database (if not exists)库名;
drop database if exists 库名;
create table 表名( 列名 列的类型【(长度) (约束)】, //长度和约束可选 列名 列的类型【(长度) (约束)】, ...);
creat table book( id int, #编号 bname varchar (20), #图书名 authorid int, #作者编号 publishdate datetime; #出版日期);
alter table 表名 关键字 column 列名 列类型 约束
//参考上个案例,创建表bookalter table book change aolumn publish pubdate datetime;
alter table book modify column pubtade timestamp;
alter table author add column annual double;
alter table author drop column annual;
alter table author rename to book_author;
drop table if exists book_author;
drop database if exists 旧库名;create database 新库名;drop table if exists 旧表名;create table 表名();
create table copy like author;
create table copy2select * from author;
create table copy3select id, au_namefrom autorwhere nation='中国';
create table copy4select id, au_namefrom authorwhere 0;
数值型: 整型 小数: 定点型 浮点型字符型: 较短的文本:char、varchar 较长的文本:text,blob(较长的二进制数据)日期型
较短的文本:char、varchar
较长的文本:text,blob(较长的二进制数据)
写法 M的意思 特点 空间的耗费 效率 char char(M) 最大的字符数,可以省略,默认为1 固定长度字符 比较耗费 较高varchar varchar(M) 最大的字符数,不可以省略 可变长度字符 比较节省 较低
分类:date 只保存日期
time 只保存时间
year 只保存年
datetime 保存日期+时间
timestamp 保存日期+时间
特点:
字节 范围 时区等的影响datetime 8 1000-9999 不受timestamp 4 1970-2038 受
含义:一种限制,用于限制表中的数据,为了保证表中数据的准确性和可靠性
分类:
1. not null: 非空用于保证该字段值不能为空2. default: 默认,用于赋予该字段默认值3. primary key: 主键,用于保证该字段的值具有唯一性,并且非空4. unique:用于保证该字段的值的唯一性5. check:检查约束【MySQL中不支持】 6. foreing key:外键约束,用于限制俩个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中某列的值
1. 创建表时2. 修改表时
1. 列级约束: 直接在字段名和类型后面追加约束类型即可 六大约束语法上都支持,但外键约束没有效果2. 表级约束: 在所有字段的最下面:constraint 约束名 约束类型(字段名) 除了非空、默认约束,其他都支持
保证唯一性 是否允许为空 一个表中可以有多少个 是否允许组合主键 Y N 一个 允许,不推荐唯一 Y Y 多个 允许,不推荐
1. 要求在从表中设置外键关系2. 从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称无要求3. 主表的关联列必须是一个key(一般是主键或唯一)4. 插入数据时,先插入主表,再插入从表,删除时相反# 添加外键约束:alter table stuinfo add constraint 表名字 foreing key(majorid) references major(id);
1. 添加列级约束:alter table 表名 modify column 字段名 字段类型 新约束2. 添加表级约束:alter table 表名 add [constraint 约束名] 约束类型(字段名) 【外键的引用】
1. 标识列不一定要和主键搭配,但必须要和一个key搭配2. 一个表至多只有一个标识列3. 标识列的类型只能是数值型4.标识列可以通过 set auto_increment_incremennt= ;设置步长 可以通过手动插入值,设置起始值
alter table 表名 modify column 字段值 类型 key名 auto_incerment;
alter table 表名 modify column 字段值 类型;
事务控制语言,一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行,比如转账的过程
事务的特性
set session 或 global transaction isolation level 隔离级别;
# 演示savepoint的使用set autocommit = 0;start transaction;delete from account where id=25;savepoint a; #设置保存点delete from account where id=28;rollback to a; #回滚到保存点select * from account;结果:id=28还在,id=25没有