DDL:主要是对库和表 的管理(创建,删除,修改)
创建: crate database 库名;例如(CREATE DATABASE studnet;):
修改库名(一般不会用)库的修改:alter database xx character set xx;(一般不会用)
删除库:drop database if exists
DDL 对表的操作()
表的创建
表的创建:create table if not exists 表名(
列名 列的类型((长度)约束),
列名 列的类型((长度)约束),
列名 列的类型((长度)约束),
列名 列的类型((长度)约束),
)
表的修改
1列名:alter table 表名 change column 旧列名 新列名 DATETIME;
2修改列的类型和约束 :alter table 表名 modify column 列名 新类型 (first| after 字段名)
3添加列: alter table 表名 add column 新列名 列名类型(如int double);
4删除列: alter table 表名 drop column 列名;
5修改表名:alter table 表名 remove to 新表名;
总结:alter table 表名 add|drop|modify|change column。。。。
数据类型:整形 字符型 日期型
整形;tinyint(1字节),smallint (两个字节),mediuint(三个字节),int(四个字节),bigint(八个字节)
特点: 如果不设置无符号还是有符号,默认是有符号,如果是想设置无符号,需要添加unsigned 关键字
2:如果插入的数值超出了整形的范围,会报 out of range异常,并且插入临界值
3: 如果不设置长度,会有默认的长度
4:长度代表了显示的最大宽度,如果不够用0在左边填充,但必须搭配zerofill使用!
字符型
较短文本char varchar 较长文本 text blob
日期型
常见约束
概念:代表一种限制,用于限制表中的数据,为了保证表中的数据 的准确和可靠性;
六大约束
not null(非空)该字段值不能为空必须填比如姓名啊学号啊
default:默认,用于保证该字段有默认值比如性别
primary key:主键,用于保证该字段具有唯一性,并且非空比如学号,员工编号等
unique:唯一,用于保证该字段的值具有唯一性,可以为空比如座位号
check:检查约束(mysql不支持加不加都没用 但是加上不报错)应用(性别年龄)
foreign key:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值
DML
概述:其实它就是对表里面的内容进行插入,修改删除;
插入语法:1;insert into +value (支持插入多行,支持子查询) 2:insert into+set
例如;
修改修改单表:update 表名1
set 列=新值,列=新值,。。。。3
where +筛选条件 2
修改多表分为两种了
update 表一 别名, 表二 别名
set 列=值,。。。
where 连接条件
and 筛选条件;
2
update 表1 别名
inner |left|right join 表二 别名
on 连接条件
set列=值
删除
删除单表
delete from 表名 where 筛选条件(单表的删除)
删除多表:92 语法
delete 别名
from 表一 别名 表二别名 where 连接条件 and 筛选条件
99语法
delete 表一的别名 ,表二的别名
from 表一别名 inner|left、|right join 表二 别名 on 连接条件 where 筛选条件
删除方式二
方式二 truncate
语法 truncate table 表名;(删除表中所有的内容相当于清空)delete 可一加where truncate不可以,truncate效率高一点。
两个区别
truncate删除后,如果再插入,标识从一开始
delete删除后,如果在插入,标识从新点开始
2 delete 可以添加筛选条件 truncate不可以添加筛选条件
3:truncate 效率较高
4 truncate 没有返回值 delete可以返回受影响的行数
5 truncate 不可以回滚 delete可以