一、MySQL的三层结构
二、sql语句分类
1.DDL: 数据定义语句
2.DML:数据操作语句
3.DQL:数据查新语句
4.DCL:数据控制语句
三、创建数据库
# 演示数据库的操作
#使用指令创建数据库 CREATE DATABASE hsp_db01;
#删除数据库
DROP DATABASE hsp_db01
#创建一个使用 utf8 字符集的 hsp_db02 数据库
CREATE DATABASE hsp_db02 CHARACTER SET utf8
#创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
CREATE DATABASE hsp_db03 CHARACTER SET utf8 COLLATE utf8_bin
#校对规则 utf8_bin 区分大小 默认 utf8_general_ci 不区分大小写
四、查看、删除数据库
#演示删除和查询数据库
#查看当前数据库服务器中的所有数据库SHOW DATABASES
#查看前面创建的 hsp_db01 数据库的定义信息
SHOW CREATE DATABASE `hsp_db01`
#删除前面创建的 hsp_db01 数据库
DROP DATABASE hsp_db01
五、备份恢复数据库
#练习 : database03.sql 备份 hsp_db02 和 hsp_db03 库中的数据,并恢复
#备份, 要在 Dos 下执行 mysqldump 指令其实在 mysql 安装目录\bin
#这个备份的文件,就是对应的 sql 语句
mysqldump -u root -p -B hsp_db02 hsp_db03 > d:\\bak.sql
DROP DATABASE ecshop;
#恢复数据库(注意:进入 Mysql 命令行再执行) source d:\\bak.sql
#第二个恢复方法, 直接将 bak.sql 的内容放到查询编辑器中,执行
六、创建数据库
CREATE TABLE `user` ( id INT,
`name` VARCHAR(255),
`password` VARCHAR(255),
`birthday` DATE)
CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
七、Mysql常用数据类型
数值类型:
1.BIT() 口号内指定位数,默认是1,范围1-64
2.TINYINT 占一个字节 带符号的范围是 -128到127 无符号0-255
3.SMALLINT 占2个字节 带符号的范围 -2^15-2^15-1,无符号0-2^16-1
3.MEDIUMINT 占3个字节 带符号的范围 -2^23-2^23-1,无符号0-2^24-1
4.INT 占4个字节 带符号的范围 -2^31-2^31-1,无符号0-2^32-1
5.BIGINT 占8个字节 带符号的范围 -2^63-2^63-1,无符号0-2^64-1
6. FLOAT 占 4 个字节
7.DOUBLE 占8 个字节
8.DECIMAL(M,D) 定点数M指定长度,D表示小数点的位数
文本、二进制类型:
1. CHAR(size) 固定长度字符串
2.VERCAHR(SIZE) 可变长度字符串
3.BLOB 二进制数据
4.TEXT 文本TEXT0-2^16
时间日期:
DATE /DATETIME/TimeStamp 日期类型
八、修改表
ALTER TABLE emp
ADD image VARCHAR(32) NOT NULL DEFAULT '' AFTER RESUME
DESC employee -- 显示表结构,可以查看表的所有列
-- 修改 job 列,使其长度为 60。ALTER TABLE emp
MODIFY job VARCHAR(60) NOT NULL DEFAULT ''
-- 删除 sex 列。
ALTER TABLE emp
DROP sex
-- 表名改为 employee。RENAME TABLE emp TO employee
-- 修改表的字符集为 utf8
ALTER TABLE employee CHARACTER SET utf8
-- 列名 name 修改为 user_name ALTER TABLE employee
CHANGE `name` `user_name` VARCHAR(64) NOT NULL DEFAULT ''
DESC employee
九、insert语句
CREATE TABLE `goods` ( id INT ,
goods_name VARCHAR(10), -- 长度 10
price DOUBLE NOT NULL DEFAULT 100 );
-- 添加数据
INSERT INTO `goods` (id, goods_name, price) VALUES(10, '华为', 2000);
INSERT INTO `goods` (id, goods_name, price) VALUES(20, '苹果', 3000);
SELECT * FROM goods;