数据库操作命令

本博客记录了,创建数据库,数据表的最基本操作,手把手教你如何入门Mysql,基础的创建数据库,数据表的注意事项,以及一些禁忌。
首先数据库是不区分大小写的,但是它对空格已经中文下的字符很敏感,空格不要乱敲,一定要在英文下写标点符号。
创建表之前一定要进入到库里,否则是创建不出来表的。
编码格式默认是utf-8,如果公司有特殊需求,也可以更改。

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_程序人生

创建库:create database 库名

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_mysql_02

查询库:show databases;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_程序人生_03

删除库:drop database 库名

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_程序人生_04

修改库,只能修改编码格式:character set utf-8;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_数据库_05

查询当前使用的库:select database();

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_mysql在指定数据库中建表_06

切换数据库:use 库名;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_经验分享_07

创建数据表

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_mysql_08


创建表

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 其他表(字段)

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_经验分享_09

设计了外键后,课程表中的sid字段就与学生表的sid字段有联系.
父表: stu表 (被引用的表)
子表: course表 (引用表)
插入时:
	学生表可以随意插入值
	课程表插入值时,sid字段只能插入学生表中有的sid值
删除或更新时:
	RESTRICT: 如果想要删除/更新父表的记录,子表中有关联该父表记录的,则不允许删除父表记录
	NO ACTION: 同restrict一样,删除时先检查外键.如果有引用,不能删除
	CASCADE: 级联,父表删除/更新时,如果有子表有关联,那么子表父表数据一起删除/更新
    SET NULL: 置空,父表删除/更新时,如果子表有关联,那么子表该条记录置为null

查看表的字段信息

desc 表名;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_数据库_10


更新表字段-添加列

alter table 表名 add 列名 数据类型(长度);

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_数据库_11


更新表字段-删除列

alter table 表名 drop 列名;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_mysql_12


更新列名

alter table 表名 change 旧列名 新列名 数据类型(长度);

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_数据库_13


更新表名

rename table 旧表名 to 新表名;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_mysql_14


条件查询:

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 表名;

mysql怎么创建数据库并导入数据表 如何在mysql数据库中创建表_数据库_15


有请各位大佬指教