mysql 數據庫、表、視圖 的創建/修改/刪除


創建,刪除數據庫              指定字符集

create database 數據庫名[default character set utf8];  ~的點 為引號

drop database 數據庫名; 

show create database 數據庫名; 查看創建語句    

alter database 數據庫名 default character set gbk;  

                            collation 排序規則;

創建表 

create  table  [if not  exists] 表名( 字段名 類型 [屬性 約束],

字段名 類型 [屬性 約束],

索引,

約束)

[表選項列表];

 

 類型[(n:長度)] [unsigned:正數] [zerofill:0填充]

        uid int(4) zerofill primary key auto_increment  0001

 

create table 表名(

變量名1 數據類型1 約束條件1約束條件12,

變量名2 數據類型2 約束條件2 );

not null        非空

unique         唯一

primary key     主鍵

id int  primary key  auto_increment  自動增加

default ‘默認值’

comment ‘字段注釋’

parmary key (stu_id,course_id(4));  定義多字段主鍵

unique key [索引名](stu_id );       唯一鍵

unique index [索引名](stu_id [asc]);  唯一索引

index [索引名] (stu_id(4),course_id);  定義索引

 

[constraint 約束名]  foreign key (stu_id, course_id) references 1(A, B)

                    外鍵                    參考   1 主鍵

[on delete cascade onupdate casade]

 外鍵關聯主鍵刪除和更新

表創建外鍵 必須要有主鍵

comment = ‘表的注釋’;

charset = 字符編碼名稱;

auto_increment = 起始整數; //自增長類型值的初值,默認是1

engine = “表的存儲引擎名”; //默認是InnoDB支持事務安全

刪除表

drop table [if exists] 表名; (先刪外鍵,子表有數據父表不能刪)

 

修改表(原數據不會丟失)

alter table表名    修改語句1[, 修改語句2];

修改表名      rename to 新表名;

修改類型 位置 modify 變量名 類型 [first/after變量A];

修改列名 類型 change 變量名 新變量名 類型;

添加變量 位置 add 新變量名 類型 [約束][first/after變量A]; 默最后

添加索引/       index[索名]/primary key /unique(變量1[,變量2])    

                      constraint 約束名 foreign key(A)references1(a)

修改默認值    alter 變量 set default ‘默認值’;

drop default ‘默認值’;

刪除變量      drop 變量名;                         

刪除鍵/索引   drop primary key/foreign key 外鍵/index 索引名;

 

表選項修改    omment = ‘表的注釋’;

charset = 字符編碼;

auto_increment = 起始整數; 自動增長初值,默認是1

engine = “表的存儲引擎名”;

 

alter table表名add constraint 約束名 foreign key(變量) references 1(A)

on delete cascade;

 

主鍵值刪除時:restrict(拋異常 默認)cascade(記錄刪除)

set null(外鍵為空 no action(什么都不做

 

插入,更新,刪除數據

insert into1[(變量3,變量2)] values (“31”,”21”)[,(“32”,null)];

insert into1(字段1,字段2,) select 字段1,字段2  from 2;

值的形式:數字 函數直接寫,字符串時間加單引號

有以下屬性的 不應該出現該字段名:auto_incrementtimestamp

 

update表名set 變量1=/表達式,變量2=2[where條件];

/*更新   變量1,變量2的值{滿足條件的更改}*/

 

delete from表名[where條件];/*刪除表中{滿足條件的}記錄*/ 事務可回滾

不刪約束,auto_increment還能繼續增長

 

delete from表名where 2014-year>6; 刪除過期記錄

truncate {table}表名;        /*刪除表(記錄和結構)*/

 

復制表

create table B like A;          復制表B結構

insert into B select * from A;  插入數據

 

create table B select * from A;  復制結構數據 丟索引,約束,自增

 

load data infile ‘文件完整名(含路徑)’ into table 表名;

載入外部“形式整齊”的數據:

 

索引(查詢 增刪改慢 占內存 )

全文索引   /fulltext index 索引名(變量B ))engine=myisam;

/*類型:char,varchar,text,引擎: myisam */

空間索引   /spatial index 索引名(變量B))engine=myisam; 不為空

/*類型:geometry,引擎: myisam */

創建索引 唯一 全文 空間 普通

create [unique/fulltext/spatial] index 索引名on表名(變量名[()] [asc/desc]);

alter table 表名 add [unique/fulltext/spatial] index 索引名on表名(變量名);

 

drop index索引名on表名   刪除索引

show index from表          查看表的索引

 

視圖(查詢得到的虛擬表)

表改→視圖不變,視圖改→表改

 

create [or replace] /alter  view視圖名[(視圖變量1,視圖變量2)] as

創建  [或修改]  /修改

select變量A,變量B from表名where條件

[with [cascaded/local] check dption]

/*更新[受表,視圖字段影響/受視圖本身字段影響]受視圖權限限制*/

 

drop view [if exists] 視圖1,視圖2; [restrict/cascade] 刪除

 

desc 視圖名;               查看視圖結構

show table status like ’視圖名’; 查看視圖狀態信息

show create view視圖名;     查看視圖創建代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM