1.MySQL的简介和安装
2.MySQL的客户端管理工具
shell命令行、MySQL Workbench、Navicat for MySQL
3.MySQL数据库和表
shell终端中数据库的创建使用及删除
MySQL Workbench中创建和修改表
create table tablename(,,);alter table user rename to tbl_user;
rename table tbl_user to user;
alter table user add email varchar(20);
alter table user drop email;
drop table user;
获取数据和表的信息及数据库物理文件简介
命令:
show databases;
use jsp_db;
show tables;
show tables from jsp_db;
describe user;
4.MySQL数据类型
数值类型
-- 数值类型、字符类型、日期和时间类型
-- 数值类型:整数类型、浮点数类型
-- 整数类型:TINYINT(占1位字节)、SMALLINT(占2位字节)、MEDIUMINT(占3位字节)、INT(占4位字节)、BIGINT(占8位字节)
-- 浮点数类型:FLOAT(单精度:占4位字符)、DOUBLE(双精度:占8位字符)、DECIMAL(十进制)
-- bool 对应 TINYINT(0:false,1:true)
use jsp_db;
-- 整数类型
create table tb_data (tint tinyint,sint smallint,mint mediumint,normalint int,bint bigint);
insert into tb_data values(123456789,123456789,123456789,123456789,123456789,123,123,123.545);
select * from tb_data;
alter table tb_data add intsex int(6);
alter table tb_data add intsex2 int(6) zerofill;
alter table tb_data add float52 float(5,2);
字符类型
-- CHAR、VARCHAR、TEXT、BLOB
-- varbinary(存储二进制可变长度的字符串),text(非二进制:不区分大小写),BLOB(二进制:区分大小写)
-- ENUM(枚举类型),SET(多选)
CREATE TABLE tb_string(charstring CHAR(10));
insert into tb_string VALUES('HELLO','M','A,C,D');
ALTER TABLE tb_string CHANGE charstring charstring CHAR(10) BINARY;
ALTER TABLE tb_string ADD gender ENUM('M','N');
ALTER TABLE tb_string ADD setcol set('A','B','C','D');
select * from tb_string where charstring='hello';
日期和时间类型
-- DATE,TIME,YEAR,DATETIME,TIMESTAMP
-- DATE(占3个字节,格式:YYYY-MM-DD 1000-01-01,1999-12-31),YEAR:(HH:MM:SS),YEAR(YYYY,从1901-2155),
-- DATETIME(DATE+TIME),TIMESTAMP(1970-01-01+TIME到2037-)
CREATE TABLE tb_date(BIRTHDAY DATE);
INSERT INTO tb_date VALUES ('2015-01-01',20170101,20170101);
SELECT * FROM tb_date;
ALTER TABLE tb_date ADD DATETIMECOL DATETIME;
ALTER TABLE tb_date ADD DATETIMECOL2 DATETIME(3);
ALTER TABLE tb_date ADD timecol TIMESTAMP;
ALTER TABLE tb_date ADD timecol2 TIMESTAMP;
5.MySQL数据库实战
Navicat工具介绍及使用
SQL语句的基本使用
# 查询语句
# SELECT 列名1,列名2 FROM 表名 WHERE 查询条件;
# SELECT * FROM 表名 WHERE 查询条件;
# 新增语句
# INSERT INTO 表名(列名1,列名2) VALUES(列1值,列2值);
# 修改语句
# UPDATE 表名 SET 列名1=列1值,列名2=列2值 WHERE 判断条件;
# 删除语句
# DELETE FROM 表名 WHERE 条件;
外键的意义及使用
连表的使用及部分SQL函数的使用
内连接,左外关联,右外关联,全连接
# 内连接
select * from tb_user u,tb_class c where u.classid=c.id;
select * from tb_user u inner join tb_class c where u.classid=c.id;
# 左连接
select * from tb_user u left join tb_class c on u.classid=c.id;
# 右连接
select * from tb_user u right join tb_class c on u.classid=c.id;
#全连接,不支持全连接,用union
select * from tb_user u left join tb_class c on u.classid=c.id
union
select * from tb_user u right join tb_class c on u.classid=c.id;
模糊查询 like '%a%'
分组 group by
排序呢 order by colomn asc/desc
前几条数据 limit,mysql语句中没有top关键字
函数 max,min,sum,avg,count