目录
9.多表查询
数据库的CRUD操作, 储存引擎,索引,事务,锁见下一篇
1.操作数据库和表(DDL)
1.数据库
创建数据库
create database 数据库名 [DEFAULT CHARSET utf8 COLLATE utf8_general_ci];
# root用户登录时,可使用这种方式创建数据库,执行完后,再登录即可
mysqladmin -u root -p create 数据库名;
方括号中为可选内容,分别用于设置数据库的默认编码格式和数据库校对规则:
collate: 中文是核对,校验的意思, 涉及到字符串比较或排序的地方都会用到collate,影响order by语句的顺序, where条件筛选结果等
1. utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
2. utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。
3. utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。
删除数据库
drop database 数据库名;
mysqladmin -u -root -p drop 数据库名;
使用数据库
use 数据库名;
显示数据库
show databases;
显示数据库中所有表
show tables;
显示表字段详情
show columns from 表名;
显示表的索引信息
show index from 表名;
显示库中表状态信息
创建时间, 使用的引擎, 索引长度等
show table status from 数据库名 [like 'xxx'];
2.表
创建表
CREATE table 表名(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
1. NOT NULL: 该字段插入的数据不能为NULL
2. AUTO_INCREMENT: 定义列自增,一般用于主键,数值会自动加1
3. PRIMARY KEY: 定义列为主键,也可以定义多个列为主键
4. ENGINE: 设置储存引擎
5. DEFAULT CHARSET: 设置编码
6. AUTO_INCREMENT=8: 设置主键从8开始自增
删除表
drop table 表名;
插入数据
INSERT INTO 表名 ( 字段1, 字段2,...字段n )
VALUES
( 值1, 值2,...值n ); #基本结构
INSERT INTO user VALUES(null,'cc','123456',2); #需插入表中全部字段,插入主键时可以插入null或者0,他会自动添加
INSERT INTO user VALUES(null,'ee','123456',2),(null,'ff','123456',1); #批量插入
INSERT INTO user VALUES(null,'ee','123456',2,NOW()); #NOW()是一个mysql函数,该函数返回日期和时间
2.数据类型
1.数值类型
int(n)中n表示数据显示宽度,已弃用
2.日期和时间类型