本博客记录了,创建数据库,数据表的最基本操作,手把手教你如何入门Mysql,基础的创建数据库,数据表的注意事项,以及一些禁忌。
首先数据库是不区分大小写的,但是它对空格已经中文下的字符很敏感,空格不要乱敲,一定要在英文下写标点符号。
创建表之前一定要进入到库里,否则是创建不出来表的。
编码格式默认是utf-8,如果公司有特殊需求,也可以更改。
修改库,只能修改编码格式:character set utf-8;
创建表
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)
该列的值不能重复
例: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 '%三%';
排序查询:
select * from 表名 order by 字段 排序类型;
排序类型:
升序 asc
降序 desc
注意:如果后面省略了排序类型,默认就是升序
order by 放在where 后面
聚合函数:
将多行数据计算成一行返回
语法:
select 聚合函数(字段)from 表名 where 条件;
聚合函数:
count(字段) 计数,计算该列不为空(null)的数据个数
sum(字段) 求和 数字求和不计算null值
avg(字段) 平均值 ,不为nul进行平均
max (字段) 最大值
min(字段) 最小值
特点:
聚合函数放在 select和from之间
凡是和聚合函数一起出现的字段,要出现在group by后面
--> 如果没有group by,那么普通字段就不能与聚合函数一起出现
======================================
what? 给查询字段取别名,该别名可用于在虚拟表字段
how? select 字段 as 别名,字段 as 别名,…from 表名
as一般省略
拓展小知识
查看创建表的语句
show create table 表名;
有请各位大佬指教