(一)常用SQL語句 1.SELECT USER() 得到登陸的用戶 2.SELECT VERSION() 得到mysql的版本信息 3.SELECT NOW() 得到當前的時間 4.SELECT DATABASE() 得到打開的資料庫名字 (二)資料庫相關操作 1.創建資料庫(名稱不要包含特殊字元 ...
(一)常用SQL語句
1.SELECT USER() 得到登陸的用戶
2.SELECT VERSION() 得到mysql的版本信息
3.SELECT NOW() 得到當前的時間
4.SELECT DATABASE() 得到打開的資料庫名字
(二)資料庫相關操作
1.創建資料庫(名稱不要包含特殊字元或者是MySQL關鍵字)
(1)CREATE {DATABASE|SCHEMA} db_name;
如:CREATE DATABASE dou
(2)CREATE {DATABASE|SCHEMA} db_name [IF NOT EXISTS ] db_name 檢測資料庫名稱是否存在,不存在則創建
如:CREATE DATABASE IF NOT EXISTS dou;
(3)CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset; 在創建資料庫的同時指定編碼方式
如:CREATE DATABASE IF NOT EXISTS dou DEFAULT CHARACTER SET 'GBK';
2.查看當前伺服器下全部資料庫
SHOW DATABASES|SCHEMAS;(註意s)
3.查看指定資料庫的詳細信息
SHOW CREATE DATABASE dou;
4.修改指定資料庫的編碼方式
ALTER DATABASE dou DEFAULT CHARACTER SET 'UTF8';
5.打開指定資料庫
USE dou
6.得到當前打開的資料庫
SELECT DATABASE()|SCHEMA();(註意小括弧)
7.刪除指定資料庫
DROP DATABASE dou;
DROP DATABASE IF EXIST dou;如果存在則刪除
(三)數據表相關操作
1.創建表
CREATE TABLE [IF NOT EXISTS] tbl_name(
欄位名稱 欄位類型 [完整性約束條件],
欄位名稱 欄位類型 [完整性約束條件],
...
)ENGINE=存儲引擎 CHARSET=編碼方式;
如:
CREATE TABLE IF NOT EXISTS dou(
id INT PRIMARY KEY,
username VARCHAR(20),
password CHAR(32),
email VARCHAR(50),
age TINYINT,
card CHAR(18),
tel CHAR(11),
salary FLOAT(8,2),
married TINYINT(1),
addr VARCHAR(100),
sex ENUM('男','女','保密')
)ENGINE=INNODB CHARSET=UTF8;
完整性約束:
①UNSIGNED 無符號,沒有負數,從0開始
②NOT NULL 非空約束,值不能為NULL,可以不填,不填即為空白
③DEFAULT 預設值 如果插入的時候沒有給欄位賦值則使用預設值
如:age TINYINT UNSIGNED DEFAULT 18
④PRIMARY KEY 主鍵,值不能重覆,一個表只能有一個主鍵,欄位不能為空;
但是一個表裡可以有複合主鍵
如:
-- 複合主鍵
CREATE TABLE test_primary_key(
id INT UNSIGNED,
courseId VARCHAR(20),
username VARCHAR(20),
email VARCHAR(50),
PRIMARY KEY(id,courseId)
);
此時只有當id和courseid同時和前面的相同時,才會出錯,如果僅有一個重覆也是可以正常添加的
⑤AUTO_INCREMENT 自動增長,只能用於數值列,而且配合索引使用,預設初始值為1,每次增長1
如:
CREATE TABLE test_auto_increment(
id INT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20)
);
INSERT test_auto_increment(username) VALUES('A');
INSERT test_auto_increment(username) VALUES('B');
INSERT test_auto_increment(id,username) VALUES(NULL,'E');
INSERT test_auto_increment(id,username) VALUES(DEFAULT,'F');
INSERT test_auto_increment(id,username) VALUES(15,'G');
INSERT test_auto_increment(username) VALUES('C');
此時最後一次的id為16
⑥UNIQUE KEY 唯一性,同樣的值不能重覆,但是NUL除外
⑦ZEROFILL 零填充,當數據的顯示長度不夠的時候可以使用前補0的效果填充至指定長度,欄位會自動添加UNSIGNED
如:
CREATE TABLE zero(
id INT(4) ZEROFILL
);
INSERT zero VALUES(1);
自動前面補零即 0001
⑧FOREIGN KEY 外鍵約束
2.查看當前資料庫下已有數據表
SHOW TABLES;
3.查看指定數據表的詳細信息
SHOW CREATE TABLE test_auto_increment
4.查看表結構
DESC|DESCRIBE test_auto_increment
SHOW COLUMNS FROM test_auto_increment
5.刪除指定數據表
DROP TABLE [IF EXISTS] test_auto_increment
(四)表結構相關操作
①添加欄位
ALTER TABLE tbl_name
ADD 欄位名稱 欄位屬性 [完整性約束條件] [FIRST|AFTER 欄位名稱]
如:
-- 添加郵箱欄位 email VARCHAR(50) NOT NULL UNIQUE ,並將email添加到username後面
ALTER TABLE user1
ADD email VARCHAR(50) NOT NULL UNIQUE AFTER username;
②刪除欄位
-- 刪除test欄位
ALTER TABLE user1
DROP username;
③修改欄位類型、欄位屬性
ALTER TABLE tbl_name
MODIFY 欄位名稱 欄位類型 [欄位屬性] [FIRST | AFTER 欄位名稱]
如:
- 將email欄位改為VARCHAR(50) NOT NULL FIRST
ALTER TABLE user1
MODIFY email VARCHAR(50) NOT NULL FIRST;
④修改欄位名稱、欄位類型、欄位屬性
ALTER TABLE tbl_name
CHANGE 原欄位名稱 新欄位名稱 欄位類型 欄位屬性 [FIRST | AFTER 欄位名稱]
如:
-- 將password 名稱改為pwd
ALTER TABLE user1
CHANGE password pwd CHAR(40) NOT NULL;
⑤添加主鍵
ALTER TABLE tbl_name
ADD PRIMARY KEY(欄位名稱)
⑥添加唯一
ALTER TABLE tbl_name
ADD UNIQUE KEY(欄位名稱)
⑦刪除唯一
ALTER TABLE tbl_name
DROP (欄位名稱)
⑧修改數據表名稱
ALTER TABLE tbl_name
RENAME new_tbl_name
或者直接 RENAME TABLE tbl_name TO new_tbl_name