Mysql表的有关细节sql语句手册

117 阅读4分钟

文章目录

Mysql的认识

sql是一种语言,是用来和MySQL做沟通,由此mysql就可以前往关联式资料库进行相关的寻找存储资料等操作。
在这里插入图片描述

设计表

字段和类型:
数据库名和表名:小写字母、下划线、数组组合
字段名称:最好是表名_字段名,表名小写,字段名首字母大写,例如:user_Id
字段类型规范:能使用tinyint就不用int,能使用int就不用char或varchar,能用varchar(20)就不用varcha(255),时间戳字段尽量用int类型
sql关键词都需要大写
尽量避免使用null,最好指定列为not null,除非整的需要存储null,null相对notnull使操作更为复杂
AUTO_INCREMENT:必须是索引的一部分,自增1
整型可以通过 TINYINT、SMALLINT、MEDIUMINT、INT 或 BIGINT 表示,分别对应8bit、16bit、24bit、32bit 和64bit 的存储空间。
实数可以通过 FLOAT、DOUBLE 和 DECIMAL 表示,其中 FLOAT 和 DOUBLE 即通常所说的浮点数
长度区别
int类型带长度:不影响存取值,即使设定的值超出了长度的范畴,也能存,如果没有达到设定的长度,则使用空格自动填充到设定的长度
char类型:不可变字符,设定的长度就是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,使用空格填充到设定的长度
varchar:可变字符,设定的长度同样是规定当前字段能存的数据的最大长度,若超出长度,则会报错,若没有达到长度,不会使用空格填充,实际多长就是多长

notnull和null区别:
设置了notnull,表中插入数据时候不能有空
设置了null,表中插入数据时候可以有空
创建表的时候默认是null
1.非空约束 NOT NULL
2.默认值约束 DEFAULT ‘男’
3.唯一约束 UNIQUE
4.主键约束 PRIMARY KEY

索引:
唯一索引:允许为null,可以有多个唯一索引,为这个键建立一个唯一索引
普通索引:可以创建多个普通索引,允许重复,允许null插入,

主键和外键
主键索引:只能有一个,不允许重复,不允许为null
外键:为这个key建立一个普通索引,可以重复,可以为空
主键用来保证数据完整性,外键用来和其他表建立联系用

数据库sql语句常用大全

创建数据库

CREATE DATABASE daatabase;

使用数据库

use database

删除数据库

DROP DATABASE database;

显示数据库

SHOW DATABASES;

创建表:

create table 表名(
列名 类型(长度) 约束
);

删除表:

DROP TABLE 表名;

查看表结构:

DESC 表名;

修改表:列名

ALTER table 表名 change 列名 新列名 类型;

修改表:列类型

ALTER table 表名 change/modify 列名 列名 新类型;

执行顺序:from->where->select->order by
查询数据:

select * from 表名;

查询表中特定列的信息

select 列1,列2 from 表名;

数据去重:

select distinct 列名 from 表名

拼接结果:

select concat(列1,列2) from 表名

结果示例:
在这里插入图片描述
设置别名

select 列 别名 from 表名;

条件查询:

select 列 from 表名 where 条件;

集合查询

where 值 in(值1,值2)

模糊查询:

like ‘%1’,以1结尾 其他以此类推
like ‘%1_’ 倒数第二位是1

排序:

where 条件 order by 列 desc/asc
asc 升序 desc 降序

分页查询:

where 条件 limit beginindex,pageSize
beginindex从第几条数据开始 pageSIze 每页显示的数据条数

聚集函数:

作用于一组数据,并对有一组数据返回一个值
count(max) 统计计算最大值
count(min) 统计计算最小值
count(sum) 统计计算求和
sount(avg) 统计计算平均值

分组函数:

select 聚集函数 from 表名 where 条件 group by 列 having 分组后的条件

内连接:
根据条件进行连接

select * form 表1 join 表2 on 表1字段 = 表2字段

左连接:
以表1为左表,返回左表中的所有数据,若右表无数据,则显示null

select * from 表1 left join 表2 on 表1字段 = 表2字段

右连接:
表2是右表,返回右表中所有数据,若左表无数据,显示null

select * from 表1 right join 表2 on 表1字段 = 表2字段

子查询:
将一个查询结果作为另一个查询的对象

select * from (select * from 表名) as 别名

插入数据

insert into 表名(字段) values(值)

修改数据

update 表 set 字段 where 条件;

删除数据

delete from 表 where 条件;

创建索引

create index 索引名称 on 表名

删除索引

drop index 索引名 on 表名
alter table 表名 drop index 索引名