Bootstrap

mysql创建数据库,数据表,索引

数据库

1.SQL语言分类

DML:添加、修改、删除、查询
DCL:用户、权限、事务
DDL:逻辑库,数据表,视图,索引

2.SQL语句的注释
#这是一段注释文字
/*
这是一段注释
文字
*/
3.创建数据库
show databases;#显示所有数据库
create database demo;#创建名为demo的数据库
drop database demo;#删除名为demo的数据库
4.创建数据表

create table 数据表(
列名1 数据类型 [约束] [comment 注释],
列名2 数据类型 [约束] [comment 注释]
)[comment=注释];

create table student(
	id int UNSIGNED PRIMARY key,
	name VARCHAR(20) NOT NULL,
	sex CHAR(1) NOT NULL,
  birthday DATE NOT NULL,
	tel CHAR(11) NOT NULL,
  remark VARCHAR(200)
);

数据表的其他操作

INSERT INTO student VALUES(1,"李强","男","1995-05-15","17340794738",NULL);

show tables;#查看当前库中所有表

desc student;#查看表结构

drop TABLE student;#删除表
5.数据类型
(1)数字
类型大小说明
TINYINT1字节小整数
SMALLYINT2字节普通整数
MENDIUINT3字节小整数
INT4字节较大整数
BIGINT8字节大整数
FLOAT4字节单精度浮点数
DOUBLE8字节双精度浮点数
DECIMAL------DECIMAL

十进制的浮点数无法在计算机中用二进制精确表达。

(2)字符串
类型大小说明
char1-255字符固定长度字符串
varchar1-65535字符不确定长度字符串
text1-65535字符不确定长度字符串
mediumtext1-1千6百万字符不确定长度字符串
longtext1-42亿字符不确定长度字符串
(3)日期类型
类型大小说明
date3字节日期
time3字节时间
year1字节年份
datetime8字节日期时间
timestamp4字节时间戳
6.数据表修改
(1)添加字段

alter table 表名称
add 列1 数据类型 [约束] [comment 注释],
add 列2 数据类型 [约束] [comment 注释],
…;

ALTER TABLE student
ADD address VARCHAR(200) NOT NULL,
ADD home_tel char(11) NOT NULL;
(2)修改字段类型和约束

alter table 表名称
modify 列1 数据类型 [约束] [comment 注释],
modify 列2 数据类型 [约束] [comment 注释],
…;

ALTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL;
(3)修改字段名称

alter table 表名称
change 列1 新列名1 数据类型 [约束] [comment 注释],
change 列2 新列名2 数据类型 [约束] [comment 注释],
…;

ALTER table student
CHANGE address home_address VARCHAR(200) NOT NULL;
(4)删除列
ALTER table student
DROP home_address,
DROP home_tel;
6.字段约束

mysql中的字段约束共有4种:

约束名称关键字描述
主键约束primary key字段值唯一,且不能为null
非空约束not null字段值不能为null (null意味没有值,而不是""空字符串)
唯一约束unique字段值唯一,且可以为null
外键约束foreign key保持关联数据的逻辑性(如果形成外键闭环,将无法删除任何一张表的记录)
7.索引
(1)创建索引

create table 表名称(
…,
index [索引名称] (字段),

);

CREATE TABLE t_message(
	id INT UNSIGNED PRIMARY key,
	content VARCHAR(200) NOT NULL,
	type ENUM("公告","通报","个人通知") NOT NULL,
	CREATE_time TIMESTAMP NOT NULL,
	INDEX idx_type (type)
);
(2)添加与删除索引

create index 索引名称 on 表名(字段);
alter table 表名称 add index [索引名称] (字段);
SHOW INDEX FROM 表名;
drop index 索引名称 on 表名;

DROP INDEX idx_type ON t_message; #删除现有索引

CREATE INDEX idx_type ON t_message(type);

SHOW INDEX FROM t_message;#查询表中所有索引

ALTER TABLE t_message
ADD INDEX idx_type(type);
(3)索引的使用原则
  • 数据量很大,且经常被查询的数据表可以设置索引
  • 索引只添加在经常别用作检索条件的字段上面
  • 不要在大字段上创建索引