sql分類:
ddl(data definition languages)語句:資料定義語言,這些語句定義了不同的資料段、資料庫、表、列、索引等資料庫物件的定義。常用的語句關鍵字主要包括create、drop、alter等。
dml(data manipulation language)語句:資料操縱語句,用於新增、刪除、更新和查詢資料庫記錄,並檢查資料完整性,常用的語句關鍵字主要包括insert、delete、udpate 和select 等。
dcl(data control language)語句:資料控制語句,用於控制不同資料段直接的許可和訪問級別的語句。這些語句定義了資料庫、表、字段、使用者的訪問許可權和安全級別。主要的語句關鍵字包括grant、revoke 等。
ddl語句:
1、建立資料庫
語法:create [if not exists] db_name
[create_specification] ...
例如建立資料庫testtest,執行命令如下:
mysql> create database testtest;
2、刪除資料庫
語法:drop [if exists] db_name
例如要刪除建立的資料庫testtest,執行命令如下:
mysql> drop database testtest;
3、建立表
語法:create table tablename (column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints , ……
column_name_n column_type_n constraints)
因為mysql 的表名是以目錄的形式存在於磁碟上,所以表名的字元可以用任何目錄名允許的字元。column_name 是列的名字,column_type 是列的資料型別,contraints 是這個列的約束條件。
例如:例如,建立乙個名稱為emp 的表。表中包括4個字段,ename(姓名),hiredate(雇用日期)、sal(薪水)、deptno(部門)字段型別分別為varchar(10)、date、decimal(10,2)、int(2)
mysql> create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));
表建立完成後,檢視表的定義,可以使用命令:desc tablename
例如,檢視emp表,輸出如下資訊:
mysql> desc emp;
| field | type | null | key | default | extra |
| ename | varchar(10) | yes | | null | |
| hiredate | date | yes | | null | |
| sal | decimal(10,2) | yes | | null | |
| deptno | int(2) | yes | | null | |
4 rows in set (0.01 sec)
如要更全面的檢視表的定義,可以執行命令:
mysql> show create table emp\g;
*************************** 1. row ***************************
table: emp
create table: create table `emp` (
`ename` varchar(10) default null,
`hiredate` date default null,
`sal` decimal(10,2) default null,
`deptno` int(2) default null
) engine=innodb default charset=utf8
1 row in set (0.00 sec)
error:
no query specified
從上面表的建立sql 語句中,除了可以看到表定義以外,還可以看到表的engine(儲存引擎)和charset(字符集)等資訊。「\g」選項的含義是使得記錄能夠按照欄位豎著排列,對於內容比較長的記錄更易於顯示。
4、刪除表
語法:drop table tablename;
例如,刪除表emp,執行如下語句:
mysql> drop table emp;
5、修改表
(1)修改表型別
語法:alter table tablename modify [column] column_definition [first | after col_name]
例如,修改表emp 的ename 字段定義,將varchar(10)改為varchar(20):
mysql> alter table emp modify ename varchar(20);
(2)、增加表字段
語法:alter table tablename add [column] column_definition [first | after col_name]
例如,表emp 上新增加欄位age,型別為int(3):
mysql> alter table emp add age int(3);
(3)、刪除表字段
語法:alter table tablename drop [column] col_name
例如,將字段age 刪除掉:
mysql> alter table emp drop age;
(4)、字段改名
語法:alter table tablename change [column] old_col_name column_definition [first|after col_name]
例如,將age 改名為age1,同時修改字段型別為int(4):
mysql> alter table emp change age age1 int(4);
(5)、修改字段排列順序
前面介紹的的字段增加和修改語法(add/cnahge/modify)中,都有乙個可選項first|after column_name,這個選項可以用來修改欄位在表中的位置,預設add 增加的新字段是加在表的最後位置,而change/modify 預設都不會改變欄位的位置。
例如,將新增的字段birth date 加在ename 之後:
mysql> alter table emp add birth date after ename;
修改欄位age,將它放在最前面:
mysql> alter table emp modify age int(3) first;
(6)、表改名
語法:alter table tablename rename [to] new_tablename
例如,將表emp 改名為emp1,命令如下:
mysql> alter table emp rename emp1;
八 mysql語句的DDL語句
ddl語句 資料定義語言 建立乙個不存在的資料庫 create database school create schema sch 檢視支援的字符集 show charset 檢視支援的校對規則 show collation 完整建立乙個不存在的資料庫,建議的操作 create database t...
mysql優化 ddl語句
mysql優化 ddl語句 mysql優化 ddl語句 在drop table維護mysql資料庫時,在drop操作期間,整個系統會被hang住,這個hang的時間的長短與buffer pool的大小相關。主要原因在於innodb在drop table時,會連續兩次遍歷buf pool lru 鍊錶...
MySQL 基礎語句 DDL
ddl語言 邏輯庫 資料表 檢視 索引 dml語言 新增 修改 刪除 查詢 dcl語言 使用者 許可權 事務 以下是ddl命令 建立 修改 刪除資料庫 使用資料庫 use test01 建立表和字段 create table student id int unsigned primary key,n...