DDL操作表
Data Definition Language (DDL数据定义语言) 如:操作数据库,操作表
创建表
语法:
create table 表名(
字段名 字段类型 [约束],
字段名 字段类型 [约束],
........
字段名 字段类型 [约束]
);
-- 注意: 小括号中最后定义的字段后面不要加逗号
MySql,数据类型概览图:
-
整型
- 一般使用int 或者bigint
-
浮点/双精度型
- 默认的范围 : float或者double
- 指定范围 :float(M,D) eg: float(4,2) 表达的范围: -99.99~99.99
-
字符串
- 固定长度 : char(n) eg: char(20), 最大能存放20个字符. ‘aaa ’, 还是占20个字符的空间
- 可变长度 : varchar(n) eg:varchar(20), 最大能存放20个字符. ‘aaa’, 占3个字符的空间
一般使用varchar(n) 节省空间; 如果长度(eg:身份证)是固定的话 可以使用char(n) 性能高一点
-
关于大文件
- 一般在数据库里面很少存文件的内容, 一般存文件的路径
- 一般不使用二进制存, 使用varchar(n)存文件的路径
-
日期
- DATE 只有日期
- DATETIME 日期和时间
约束概览图:
约束种类:
-
not null: 非空 ; eg: username varchar(40) not null username这个字段不能为空,必须要有数据
-
unique:唯一约束, 后面的数据不能和前面重复; eg: cardNo varchar(18) unique; cardNo字段不能出现重复的数据
-
primary key;主键约束(非空+唯一); 一般用在表的id列上面. 每一张表基本上都有id列的, id列作为记录的唯一标识的
-
auto_increment: — 自动增长,必须是设置了primary key之后,才可以使用auto_increment id int primary key auto_increment id不需要我们自己维护了 插入数据的时候直接插入null,自动的增长进行填充进去, 避免重复了.
-
注意:
- 先设置了primary key 再能设置auto_increment
- 只有当设置了auto_increment 才可以插入null 自己维护 否则插入null,会报错
- 一般开发中id主键会设置为自动增长
代码示例:
- 创建一张学生表(含有id字段,姓名字段,性别字段. id为主键自动增长)
-- 语法:
-- create table 表名(
字段名 字段类型 约束,
字段名 字段类型 约束,
....
字段名 字段类型 约束
-- );
-- 字段类型: int,bigint,float,double,varchar(size),date,datetime
-- 字段约束: not null, unique,primary key auto_increment
-- 创建一张学生表(含有id字段,姓名字段,性别字段. id为主键自动增长)
create table student(
id int primary key auto_increment,
name varchar(40),
sex varchar(25)
);
查看表:
- 语法:
- 查看所有的表:show tables;
- 查看表的定义结构:desc 表名;
代码示例:
-- 查询day17_1数据库中所有表
show tables;
-- 查询student表的定义结构
desc student;
修改表:
-
语法:
- 增加一列; alter table 表名 add 字段 类型 约束;
- 修改列的类型约束; alter table 表名 modify 字段 类型 约束 ;
- 修改列的名称,类型,约束; alter table 表名 change 旧列名 新列名 类型 约束;
- 删除一列; alter table 表名 drop 列名;
- 修改表名 ; rename table 旧表名 to 新表名;
-
需求:
- 给学生表增加一个grade字段
- 给学生表的sex字段改成字符串类型
- 给学生表的grade字段修改成class字段
- 把class字段删除
- 把学生表修改成老师表
代码示例:
-- 给学生表增加一个grade字段
alter table student add grade varchar(40) not null;
-- 给学生表的sex字段改成字符串类型
alter table student modify sex varchar(20) not null;
-- 给学生表的grade字段修改成class字段
alter table student change grade class varchar(40) ;
-- 把class字段删除
alter table student drop class;
-- 把学生表修改成老师表
rename table student to teacher;
删除表:
- 语法: drop table 表名;
代码示例:
-- 删除teacher表
drop table teacher;
-------------------------------------------------------------------------------------------------------------------------------
小白一枚,喜欢编程,以上内容纯手打,如有错误,请及时指正,谢谢!!!
欢迎下次再来ヾ(≧▽≦*)o
求三连(❁´◡`❁)