1. 程式人生 > >庫增刪該查,表增刪該查,記錄增刪該查,mysql用戶管理,表與表關系(多對多,多對一,一對一)

庫增刪該查,表增刪該查,記錄增刪該查,mysql用戶管理,表與表關系(多對多,多對一,一對一)

主鍵 新建 eat evo user pri The 數據類型 pan

庫增刪該查

增加庫
create database db1
create database db1 charset="gbk

查看庫
show databases  查看所有庫
show create database db1  查看具體庫

改
alter database db1 charset="utf8"  改庫的屬性

刪除
drop database db1

表增刪該查

進入庫名
use db1
select databases()

創建表
create table t1(name char(20),age int(10));

查看表
show tables
show 
create table t1; desc(ribe) t2 : 查看表結構 刪除 drop table t1 修改 alter table t2 modify name char(20) 修改字段名 alter table t2 rename t1 修改表明 ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新數據類型; alter table t1 change name user char(16) 修改字段屬性

字段增刪該查

增加
insert into t1 (usr, age) values ("aa",18 ),("bb",8);

查
select
* from t1 改 update t1 set age=28 where usr="aa" 刪除 delete from t1 where age>8

表的詳細操作

拷貝表
create table t1 like t2;    拷貝空表
create table t1 select * from t2;  (結構+數據) 連同表記錄一起拷貝過來,不復制表約束

truncate tt;  清空表,自增字段重置

alter table t1 engine=innodb charset=gbk;   修改表的引擎,字符編碼集

表的字段操作

修改字段信息
alter
table 表名 modify 字段名 類型[(寬度) 約束]; 修改字段信息 alter table 表名 modify 字段名 類型[(寬度) 非鍵約束] first; 移動字段到最前面 alter table 表名 modify 字段名 類型[(寬度) 非鍵約束] after 指定字段前; 移動到字段到指定字段後面 修改字段名及信息 alter table 表名 change 舊字段名 新字段名 類型[(寬度) 約束條件] 末尾添加 alter table 表名 add 字段名 類型[(寬度) 約束], ..., add 字段名 類型[(寬度) 約束]; alter table t1 add name char(5), add sex enum(male,femail,other) 首行添加 alter table 表名 add 字段名 類型[(寬度) 約束] first; 指定字段的後面添加 alter table 表名 add 字段名 類型[(寬度) 約束] after 舊字段名; 刪除字段名 alter table 表名 drop 字段名;


表的字段操作

特殊表:(mysql.user)
查看當前登陸用戶  select user();

重要字段:  Host | User | Password
select  Host,User,Password from user;

新建用戶
create user 用戶名@主機名 identified by 密碼

設置用戶權限
grant create on db1.* to zero@localhost with grand option   給用創建表的權限

設置權限是如果沒有當前用戶,會自動創建用戶 (重點)
grant all on db1.* to owen@localhost identified by owen;    # (創建用戶)設置權限

撤銷權限
revoke 權限名 on 數據庫名.表名 from 用戶名@主機名;
revoke delete on db1.* from owen@localhost;

修改密碼
set password for 用戶名@主機名 = password(新密碼);
set password for owen@localhost = password(123);

刪除用戶
drop user 用戶名@主機名;

表關系

多對一 (關鍵字設置在多的那一方)

建表規則:
先建立主表,再建立從表,在從表中設置主表的唯一字段(通常為主鍵)作為外鍵

建表語法

建主表:
create
table 主表( id int primary key auto_increment, ... );

create table dep( id int primary key auto_increment, name varchar(16), work varchar(16) );

建從表
create table 從表(
    id int primary key auto_increment,
    ...
    主表_id int, # 只是在從表中起了一個名字, 該名字和主表主鍵對應,所有起了個見名知義的名字
    foreign key(主表_id) references 主表(唯一字段名id)
    on update cascade
    on delete cascade
);

create table emp( id int primary key auto_increment, name varchar(16), salary float, dep_id int, foreign key(dep_id) references dep(id) 外鍵設置在多的那一方 on update cascade # 設置級聯 on delete cascade );

多對多(關系確立在第三張表上)

建表規則:
  新建第三張表,通過兩個外鍵形成多對多關系

建表語法:
create table 表1(
    id int primary key auto_increment,
    ...
);
create table book(
   id int primary key auto_increment,
   name varchar(16),
   price int
);
create table 表2(
    id int primary key auto_increment,
    ...
);
create table author(
   id int primary key auto_increment,
   name varchar(16)
);

建第三張表建立關系

create table 關系表(
    id int primary key auto_increment,
    表1_id int,
    表2_id int,
    foreign key(表1_id) references 表1(id)
    on update cascade
    on delete cascade,
    foreign key(表2_id) references 表2(id)
    on update cascade
    on delete cascade
);
create table book_author(
    id int primary key auto_increment,
    book_id int,
    author_id int,
    foreign key(book_id) references book(id)      第三張表與第一張表建立關系
    on update cascade
    on delete cascade,
    foreign key(author_id) references author(id)   第三張表與第一張表建立關系
   on update cascade
   on delete cascade );

一對一(關系確立在第一張表上)

建表規則:
未存放外鍵的表被依賴,稱之為左表;存放外鍵的表示依賴表,稱之為右表;先操作左邊再操作右表

建表語法:

create table 左表(
    id int primary key auto_increment,
    ...
);
create table husband(
    id int primary key auto_increment,
    name varchar(16)
);
create table 右表(
    id int primary key auto_increment,
    ...
    左表_id int unique, # 一對一的外鍵需要唯一性
    foreign key(左表_id) references 左表(id)
    on update cascade
    on delete cascade
);
create table wife(
    id int primary key auto_increment,
    name varchar(16),
    husband_id int unique, # 一對一的外鍵需要唯一性
    foreign key(husband_id) references husband(id)
    on update cascade
    on delete cascade
);

 

庫增刪該查,表增刪該查,記錄增刪該查,mysql用戶管理,表與表關系(多對多,多對一,一對一)