SQL語句主要可以分爲以下3個類別:
1:DDL語句:數據定義語言。常用關鍵字主要包括create、drop、alter等。
2:DML語句:數據操縱語言,用於添加、刪除、更新、查找。其只對表內部數據進行操作,而不涉及表的定義和結構的修改。常用關鍵字主要包括insert、delete、uptdate和select。
3:DCL語句:數據控制語句,用於控制不同數據段直接的許可和訪問級別的語句。主要關鍵字包括grant、revoke。
以上是啓動mysql服務的界面。
在以上命令行中mysql代表客戶端命令,"-u"後面跟的是連接的數據庫用戶,"-p"表示需要輸入密碼。
如果數據庫設置正常,並輸入了正確的密碼。將會看到上面一段歡迎界面和一個"mysql>“提示符。
在歡迎界面說明了以下幾部分內容:
命令的結束符用’’;“或”\g"結束。
客戶端的連接id,記錄了目前此數據庫被連接的次數。
mysql服務器的版本,本例中是8.0.18.
通過"help;“或”\h"命令來顯示幫助內容,通過”\c"來清楚命令行buffer。
在mysql>提示符後面輸入所要執行的SQL語句,每個SQL語句以";“或者”\g"結束,按回車鍵執行。
2.2.1DDL語句:
1:創建數據庫:
mysql> create database test1;
2:查看系統中存在的數據庫:
mysql> show databases;
information_schema:主要存儲了系統中的一些數據庫對象信息。
mysql:存儲了系統用戶權限的信息。
3:選擇要操作的數據庫:
mysql> use test1
4:選擇操作的數據庫後,查看test1中創建的所有數據表:
mysql> show tables;
5:刪除數據庫:
mysql> drop database test1;
數據庫刪除之後,下面的所有表數據都會被全部刪除,所以刪除前一定要仔細檢查做好備份。
6:創建表:
mysql的表名是以目錄的形式存在於磁盤上的。
在數據庫中創建一張表的基本語法如下:
CREATE TABLE table(column_name_1 column_type_1 constraints,…)
column_name:列的名字。
column_type:列的數據類型。
constraints:列的約束條件。
例如,創建一個名稱爲emp的表。表中包括ename(姓名)、hiredata(僱傭日期)和sal(薪水)3個字段,字段類型分別爲varchar(10)、data、int(2)。
mysql> create table emp(ename varchar(10),hiredata data,sal decimal(10,2),deptno int(2));
7:查看錶:
mysql> desc smp;
爲了得到更加全面的表信息,有時需要查看創建表的SQL語句:
mysql> show create table func \G;
可以看到,通過以上語句,除了可以看到表的定義以外,還一看到表的engine(存儲引擎)和charset(字符集)等信息。"\G"選項的含義是使得記錄能夠按照字段豎向排列,以便更好地顯示內容較長的記錄。
8:刪除表:
mysql> drop table emp;
9:修改表:
對於已經創建好的表,油漆是已經有大量數據的表,如果需要做一些結構上的修改,可以先將表刪除,然後按照新的定義重建表。但是這又一定的缺陷,如果有服務在訪問表,也會對服務產生影響。
因此,在大多數情況下,表結構的更改都使用alter table語句,以下是一些常用命令:
1)修改表類型,語法如下:
例如修改表emp的ename字段定義,將varchar(10)改爲varchar(20)。
mysql> alter table emp modify ename varchar(20);
2)增加表字段,語法如下:
在表emp中心增加字段age,類型爲int(3):
mysql> alter table emp add age int(3);
3)刪除表字段:
將字段age刪掉:
mysql> alter table emp drop column age;
4)字段改名:
將age改名爲age1,同時修改字段類型爲int(4):
mysql> alter table emp change age age1 int(4);
注意:change和modify都可以修改表的定義,不同的是change後面要寫兩次列名,不方便。但是change的優點是可以修改列名稱,modify則不能。
5:修改字段排列順序:
前面介紹的字段增加和修改語法中,都有一個可選項first|after column_name,這個選項可以用來修改字段在表中的位置,ADD增加的新字段默認是加在表的最後位置,而CHNANGE/MODIFY默認不改變字段的位置。
例如將新增的字段birth data加在ename之後:
mysql> alter table emp add birth data after ename;
修改字段age,將它放在最前面:
mysql> alter table emp modify age int(3) first;
注意:CHANGE/FIRST|AFTER COLUMN 這些關鍵字都屬於MySQL在標準SQL上的擴展,在其它數據庫上不一定適用。
6:更改表名:
將emp改名爲emp1:
mysql> alter table emp rename emp1;