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