MySQL資料庫基本操作(DDL)
1.mysql -hlocalhost -uroot -p123 登陸
2.show databases; 檢視資料庫資訊
3.use XXX; 使用XXX資料庫
4.show tables; 檢視資料表
5.如何通過命令更改使用者資訊
use mysql;
select * from user\G; 檢視資訊
update user set password=password(新密碼) where user='root';
flush prvileges; 重新整理許可權資訊
6.exit;退出
7.?尋求幫助
建立資料庫 create database [if not exists] 資料庫名
刪除資料庫 dorp database [if exists] 資料庫名;
查詢資料庫 show databases;
使用資料庫 use 資料庫名;
#註釋
8.字串型別
char[0~255]儲存 varchar[0~65535]儲存姓名等 text[0~2^16-1]儲存檔案 文字
9.日期型別
DATETIME
10.資料欄位屬性
unsigned 無符號的(非負數) zerofill 不足位數用0來填充 auto_increment 自動增長 設定主鍵 唯一區分不同的
個體 如所有人的省份證號碼都不一樣 自增列預設初始值1 步長
11.null和not null
設定可不可以為空
12.default 設定預設值
13.建立表
create table if not exists 表名(列名 型別 屬性 索引 註釋,列名 型別 屬性 索引 註釋,列名 型別
屬性 索引 註釋)[表型別引擎][表字符集utf8][註釋]
#同一個列可以被多個屬性同時修飾
例如#建立Student表(學號、登陸密碼、姓名、性別、生日、家庭住址、郵箱)
CREATE TABLE [IF NOT EXISTS] student(
id INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT'主鍵,學號',
pwd VARCHAR(20) DEFAULT '123465',
name VARCHAR(30) DEFAULT'匿名'NOT NULL,
sex VARCHAR(2) NOT NULL DEFAULT '男',
birthday DATETIME,
address VARCHAR(100),
email VARCHAR(50)
)AUTO_INCREMENT=100;#設定預設初始值為100,自增步長為5(SET @@auto_increment_increment=5;)
14.檢視資料庫的定義
SHOW CREATE DATABASE school;
檢視資料表
SHOW CREATE TABLE student;
顯示資料表的結構
DESC student;
檢視mysql所支援的引擎型別(表型別)
SHOW ENGINES;
檢視預設引擎
SHOW VARIABLES LIKE 'storage_engine';
15.#建立一個測試表
#設定嚴格檢查模式 SET sql_mode='strict_trans_tables';
CREATE TABLE test(coll INT(4) ZEROFILL NOT NULL
)
16.修改表
修改表名 ALTER TABLE 舊錶名 RENAME AS 新表名
新增欄位 ALTER TABLE 表名 ADD 欄位名 列型別[屬性]
修改欄位 ALTER TABLE MODIFY 欄位名 (改變屬性值)
ALTER TABLE CHANGE 舊欄位名 新欄位名 列型別[屬性]
刪除欄位 ALTER TABLE 表名 DROP 欄位名
刪除表 DROP TABLE IF EXISTS 表名;
17.主鍵 PRIMARY KEY
外來鍵 CONSTRAINT FK_外來鍵約束名 FOREIGN KEY(外來鍵名) REFERENCES 主鍵表名(主鍵欄位名)
主鍵和外來鍵名字可以一樣 也可以不一樣 但是資料型別必須一樣
1、建立子表的同時建立外來鍵
2、建立子表完畢後,修改子表新增外來鍵
ALTER TABLE 子表名
ADD CONSTRAINT FK_外來鍵約束名 FOREIGN KEY(外來鍵名) REFERENCES 主鍵表名(主鍵欄位名)
3、刪除表
#刪除具有主外來鍵關係的表時,要先刪子表,後刪主表。
4、刪除外來鍵
ALTER TABLE 子表名 DROP FOREIGN KEY FK_外來鍵約束名
ALTER TABLE 子表名 DROP INDEX KE_外來鍵約束名
17.DML資料操作語言
1、新增資料 INSERT 命令
語法:INSERT INTO 表名 (列名) VALUES(值);或 INSERT INTO 表名 (列名1,列名2,列名3...) VALUES(值1,值2,值3...);
錯誤碼 1136 列的數量和值的數量不匹配
INSERT INTO 表名 (列名) VALUES(值1),(值2),(值3),(值4)...; #多個數值一起插入
注意:欄位或值之間用英文逗號隔開;"欄位1,欄位2..."該部分可省略,但新增的值務必於表結構資料列順序相對應,且數量一致;
可同時插入多條資料,values後用英文逗號隔開。
2、修改資料UPDATE命令
語法:
UPDATE 表名 SET column_name=value[column_name1=value1,column_name2=value2,...]
[WHERE CONDITION];
注意:column_name為要更改的資料列,value為修改後的資料,可以為變數、具體值、表示式或者巢狀的SELECT結果,condition為篩選條件,如不指定則修改該表的所有列資料。
運算子 |
含義 |
範例 |
結果 |
= |
等於 |
5=6 |
false |
<>或!= |
不等於 |
5!=6 |
true |
> |
大於 |
5>6 |
false |
< |
小於 |
5<6 |
true |
>= |
大於等於 |
5>=6 |
false |
<= |
小於等於 |
5<=6 |
true |
BETWEEN |
在某個範圍之間 |
BETWEEN 5 AND 10 |
—— |
AND |
並且 |
5>1 AND 1>2 |
false |
OR |
或 |
5>1 OR 1>2 |
true |
也可以使用函式
UPDATE 表名 SET 欄位名=CONCAT(“欄位名前面追加的字串”,欄位名);
3、刪除資料DELETE命令
DELETE FROM 表名 [WHERE CONDITION];
CONDITION為篩選條件,如果不指定則刪除該表的所有資料。