mysql中数据库怎么建库建表
数据库操作命令
本博客记录了,创建数据库,数据表的最基本操作,⼿把⼿教你如何⼊门Mysql,基础的创建数据库,数据表的注意事项,以及⼀些禁忌。⾸先数据库是不区分⼤⼩写的,但是它对空格已经中⽂下的字符很敏感,空格不要乱敲,⼀定要在英⽂下写标点符号。
创建表之前⼀定要进⼊到库⾥,否则是创建不出来表的。
编码格式默认是utf-8,如果公司有特殊需求,也可以更改。
创建库:create database 库名
查询库:show databases;
删除库:drop database 库名
修改库,只能修改编码格式:character set utf-8;
查询当前使⽤的库:select database();
切换数据库:use 库名;
创建数据表
创建表
create table 表名(
列名 数据类型(长度) [约束],
列名2 数据类型(长度) [约束],
列名3 数据类型(长度) [约束]
);
数据类型:
整型
int , 长度固定11
浮点型
double 长度(总长,其中⼩数个数)(5,2) 999.99√ 10000.0× 1.1√float
字符型
char 定长字符,长度0-255, ‘张三 ’
varchar 可变长字符 ‘张三’冯德伦 莫文蔚
text 主要存储⼤⽂本数据
字节型
blob 字节类型,适合存图像等
⽇期型
date ⽇期,不需要指定长度
time 时间,不需要指定长度
datetime ⽇期时间,不需要会指定长度
timestamp 时间戳,时间会⾃动改变
约束:
约束就是对列数据的约束。
主键约束(primary key)
设置主键的列,其中的值不能重复,且不能为空.
主键的作⽤:主键是索引,通过主键查询数据效率极⾼.
⾃增约束(auto_increment)
克里斯-布朗⾃增约束.⼀般配合主键⼀起使⽤
例:id int primary key auto_increment,
唯⼀约束(unique)我是特种兵之霹雳火演员表
wwe摔角手该列的值不能重复
例:name varchar(10) unique
不能为空 (not null )
例:id int not null,
默认值(default)
当赋值时,不给值.就会赋默认值.
例:id int default 0,
引⽤完整性约束–>外键
创建外键的⽅式
1 在建表时直接指定
在引⽤了别的表字段的表中添加外键约束
constraint 外键名 foreign key(当前表字段) references 其他表(字段)
2 建好表后再指定
alter table 表名 add constraint 外键名 foreign key (字段) references 其他表(字段)
设计了外键后,课程表中的sid字段就与学⽣表的sid字段有联系.
⽗表: stu表 (被引⽤的表)
⼦表: course表 (引⽤表)
插⼊时:
学⽣表可以随意插⼊值
课程表插⼊值时,sid字段只能插⼊学⽣表中有的sid值
删除或更新时:
RESTRICT: 如果想要删除/更新⽗表的记录,⼦表中有关联该⽗表记录的,则不允许删除⽗表记录
NO ACTION: 同restrict⼀样,删除时先检查外键.如果有引⽤,不能删除
CASCADE: 级联,⽗表删除/更新时,如果有⼦表有关联,那么⼦表⽗表数据⼀起删除/更新
SET NULL: 置空,⽗表删除/更新时,如果⼦表有关联,那么⼦表该条记录置为null
查看表的字段信息
desc 表名;
更新表字段-添加列
alter table 表名 add 列名 数据类型(长度);
圣诞礼物送什么
更新表字段-删除列
alter table 表名 drop 列名;
更新列名
alter table 表名 change 旧列名 新列名 数据类型(长度);
更新表名
rename table 旧表名 to 新表名;
条件查询:
selet 字段1 ,字段2,字段3,… from 表名 where 条件;模糊查询:
select *(也可是字段) from 表名 where 字段 like %值%;
模糊匹配符号
%,匹配任意个数的任意字符
孝心小故事—_,匹配任意⼀个字符
例:-- 查询姓名以“张”开头的学⽣记录
select * from stu where sname like '张%';
-- 查询姓名中包含“三”的学⽣记录
select * from stu where sname like '%三%';
发布评论