資料庫 進入資料庫 mysql -u用戶名 -p密碼 資料庫層次 資料庫的創建 create database 資料庫的名 character set 字元集 collate 校對規則 資料庫的刪除 drop database 資料庫名 資料庫的修改 alter database 資料庫 chara ...
進入資料庫 mysql -u用戶名 -p密碼
資料庫層次
- 資料庫的創建
create database 資料庫的名 character set 字元集 collate 校對規則
- 資料庫的刪除
drop database 資料庫名
- 資料庫的修改
alter database 資料庫 character set 字元集(utf8)
- 資料庫的查詢
show databases;
show create database 資料庫的名字
select database();
- 資料庫的切換
use 資料庫的名字
表層次
- 表的創建:
create table 表名( 列名 列的類型 列的約束, 列名 列的類型 列的約束 )
列的約束:
primary key: 主鍵約束:唯一不為空
PRIMARY(sid,age)聯合主鍵:只生效一個
unique: 唯一約束:值可為空,可以加多個null, 一個表可以多個unique .
not null: 非空約束
自動增長: auto_increment
default:‘預設語句’ 。 這裡的語句會自動執行,無需數據填寫
也可以寫上null 。
- 表的刪除
drop table 表名
- 表的修改
alter table 表名 (add, modify, change , drop) rename table 舊表名 to 新表名
alter table 原表名 rename 新的表名
alter table 表名 character set 字元集
- 查詢表結構
show tables; 查詢出所有的表
show create table 表名 : 表的創建語句, 表的定義 desc 表名 表的結構
外鍵:
商品表和分類表數據通過外鍵category_cid相連。
外鍵作用:進行多表數據關聯。 多表關係中,是存在主表、從表的:
主表:數據來源表/主鍵ID所在表
例如:分類表----是分類名稱數據的來源表,主鍵CID所在表
從表:數據引用表/外鍵所在表
例如:商品表---引用了分類表數據,外鍵category_cid所在表
外鍵特點:
從表外鍵指向主表主鍵
從表外鍵的數據類型和長度,必須和主表主鍵數據類型和長度 一致
聲明外鍵約束:(是為從表添加)
格式:
alter table 從表 add [constraint 外鍵名稱] foreign key (從表外鍵欄位名) references 主表 (主表的主鍵);
1、 從表外鍵的數據類型和長度,必須和主表主鍵數據類型和長度 一致
2、從表和主表為空,或者數據必須完整
l刪除外鍵約束:(瞭解,開發慎用)
alter table 從表 drop foreign key 外鍵名稱
添加多對多外鍵實例:
CREATE TABLE actor( aid INT PRIMARY KEY, NAME VARCHAR(30) ); CREATE TABLE role( rid INT PRIMARY KEY, NAME VARCHAR(30) ); CREATE TABLE actor_role( arid INT PRIMARY KEY , aid INT, rid INT ) ALTER TABLE actor_role ADD FOREIGN KEY(aid) REFERENCES actor(aid); ALTER TABLE actor_role ADD FOREIGN KEY (rid) REFERENCES role(rid);
添加一對多外鍵實例:
CREATE TABLE province( id INT PRIMARY KEY, NAME VARCHAR(20), description VARCHAR(20) ); CREATE TABLE city( id INT PRIMARY KEY, pid INT , NAME VARCHAR(20), description VARCHAR(20) ); DROP TABLE city ; ALTER TABLE city ADD FOREIGN KEY (pid) REFERENCES province(id) ;
- 表中數據的操作
插入: insert into 表名(列名,列名) values(值1,值2);
刪除: delete from 表名 [where 條件]
修改: update 表名 set 列名='值' ,列名='值' [where 條件];
查詢: select [distinct] * [列名1,列名2] from 表名 [where 條件]
- 其他
as關鍵字: 別名 where條件後面:
關係運算符: > >= < <= != <> --
判斷某一列是否為空: is null is not null
in 在某範圍內 between...and
邏輯運算符: and or not
模糊查詢: like _ : 代表單個字元 %: 代表的是多個字元
分組: group by 分組之後條件過濾: having
聚合函數: sum() ,avg() , count() ,max(), min() 排序: order by (asc 升序, desc 降序)
資料庫的備份:
導出: mysqldump -uroot -p密碼 目標庫>f://aa.sql [導出文件路徑] 會自動創建
導入:mysql -uroot -p密碼 目標庫<f:/sss.sql 【路徑】 需要手動創建好一個資料庫 然後導入到這個資料庫。