SQL------DDL
一、SQL
? ? 定義:Structure Query Language(結(jié)構(gòu)化查詢語言)估盘,SQL被美國國家標(biāo)準(zhǔn)局(ANSI)確定為 ? ? ? ? ? ? ? ?關(guān)系型數(shù)據(jù)庫語言 的美國標(biāo)準(zhǔn)颈嚼,后來被國際化標(biāo)準(zhǔn)組織(ISO)采納為關(guān)系數(shù)據(jù)庫語言的 ? ? ? ? ? ? ? ? ? 國際標(biāo)準(zhǔn)孝冒。
? ?SQL 是一種標(biāo)準(zhǔn)化的語言添履,它允許你在數(shù)據(jù)庫上執(zhí)行操作驻谆,如創(chuàng)建項目炭玫,查詢內(nèi)容奈嘿,更新內(nèi)容, ? ? ?并刪除條目等操 作吞加。
? ? Create, Read, Update, and Delete 通常稱為CRUD操作裙犹。
二、SQL語句分類
? ? ? ? ? ***DDL(Data De?nition Language):數(shù)據(jù)定義語言衔憨,用來定義數(shù)據(jù)庫對象:庫叶圃、表、列 ? ? ? ? ? ? ? ? ? ?等践图。
? ? ? ? ? ?*** DML(Data Manipulation Language):數(shù)據(jù)操作語言掺冠,用來定義數(shù)據(jù)庫記錄(數(shù)據(jù))。
? ? ? ? ? ?*** DCL(Data Control Language):數(shù)據(jù)控制語言码党,用來定義訪問權(quán)限和安全級別德崭。 ? ? ? ? ? ? ? ? ? ? ?***DQL(Data Query Language):數(shù)據(jù)查詢語言,用來查詢記錄(數(shù)據(jù))揖盘。
?著重講解DDL
三眉厨、DDL的使用
1、數(shù)據(jù)庫
? ? ?1)創(chuàng)建:CREATE DATABASE 語句用于創(chuàng)建新的數(shù)據(jù)庫
? ? ? ? ? ? ? ? ? ?語法:CREATE DATABASE 數(shù)據(jù)庫名
? ? ? ? ? ? ? ? ? ?SQL>CREATE DATABASE ?mydb1; ? ? ? ?//創(chuàng)建新的數(shù)據(jù)庫mydb1
? ? ? ? ? ? ? ? ? ?SQL> CREATE DATABASE mydb2 character SET GBK; ? ?//創(chuàng)建新的數(shù)據(jù)庫mydb2,并 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?設(shè)置該數(shù)據(jù)庫的字符集是GBK
? ? ? ? ? ? ? ? ? ?SQL> CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//創(chuàng)建新的數(shù)據(jù)庫mydb2,并設(shè)置該數(shù)據(jù)庫的字符集是GBK-gbk_chinese_ci
? ? ? 2)a:查看當(dāng)前數(shù)據(jù)庫服務(wù)器中的所有數(shù)據(jù)庫
? ? ? ? ? ? ? ?SQL> SHOW DATABASES;
? ? ? ? ? ? b:查看前面創(chuàng)建mydb2數(shù)據(jù)庫的定義信息
? ? ? ? ? ? ? ? SQL> Show CREATE DATABASE mydb2;
? ? ?3)修改:查看服務(wù)器中的數(shù)據(jù)庫兽狭,并把mydb2的字符集修改為utf8
? ? ? ? ? ? ? ? SQL> ALTER DATABASE mydb2 character SET utf8;
? ? ?4)刪除
? ? ? ? ? ? ? ? SQL> DROP DATABASE mydb3;
? ? ?5)查看當(dāng)前使用的數(shù)據(jù)庫
? ? ? ? ? ? ? ? ?SQL> Select database();
? ? ?6)切換數(shù)據(jù)庫
? ? ? ? ? ? ? ? ? SQL> USE mydb2;
2憾股、表
? ? ?1)創(chuàng)建表:CREATE ?TABLE
? ? ? ? ? ? ? ? ? ?語法:CRTATE TABLE 表名(字段1 字段類型(長度) 約束,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?字段2 字段類型(長度) 約束, ...字段n 字段類型(長度) 約束
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?);
? ? ? ? ? ? ? ? ? ? ? ? ?示例:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SQL> CREATE TABLE Employees ( ? id INT NOT NULL, ? age INT NOT NULL, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? first VARCHAR(255), ? last VARCHAR(255), ? PRIMARY KEY ( id ) );
? ? ?2)刪除表:DROP TABLE
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SQL> DROP TABLE table_name;
? ? ?3)查看當(dāng)前數(shù)據(jù)庫中所有的表
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SHOW TABLES;
? ? ?4)查看表的字段信息
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DESC Employee;
? ? ? 5)表名改為user
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?RENAME TABLE employee TO user;
? ? ?6)查看表格的創(chuàng)建細(xì)節(jié)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?SHOW CREATE TABLE user;
? ? ?7)修改表的字符集為gbk
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ALTER TABLE user CHARACTER SET gbk;
3、列
? ? ?1)在上面員工表的基本上增加一個image列
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALTER TABLE ?Employee ADD image blob;
? ? ?2)修改job列箕慧,使其長度為60
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ALTER TABLE employee MODIFY job varchar(60);
? ? ?3)刪除image列,一次只能刪一列
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALTER TABLE employee DROP image;
? ? ?4)列名name修改為username
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ALTER TABLE user CHANGE name usernamevarchar(100);
常用數(shù)據(jù)類型:
int:整型
double:浮點型荔燎,例如double(5,2)表示最多5位,其中必須有2位小數(shù)销钝,即最大值為999.99有咨;
?char:固定長度字符串類型; char(10) 'aaa ' 占10位 varchar:可變長度字符串類型蒸健;?
varchar(10) 'aaa' 占3位
text:字符串類型座享;
?blob:字節(jié)類型婉商;
date:日期類型,格式為:yyyy-MM-dd
?time:時間類型渣叛,格式為:hh:mm:ss timestamp:
時間戳類型 yyyy-MM-dd hh:mm:ss 會自動賦值
datetime:日期時間類型 yyyy-MM-dd hh:mm:ss
常用約束:
主鍵約束:primary key
唯一約束:unique [key]?
非空約束:not null
默認(rèn)約束:default?
外鍵約束:foreign key
?自動增長:auto_increment