MySQL學習筆記二 SQL

2021-09-30 00:21:29 字數 3176 閱讀 2881

1. 什麼是sql?

structured query language:結構化查詢語言

其實就是定義了操作所有關係型資料庫(relational database)的規則。每一種資料庫操作的方式存在不一樣的地方,稱為「方言」

2. sql通用語法

* sql語句可以單行或多行書寫,以分號結尾。

* 可使用空格和縮進來增強語句的可讀性。

* mysql資料庫的sql語句不區分大小寫,關鍵字建議使用大寫。

* 3種注釋:

* 單行注釋(注意空格):-- 注釋內容 或 # 注釋內容(mysql特有)

* 多行注釋:/* 注釋內容 */

3. sql的分類

1. ddl(data definition language)資料定義語言

用來定義資料庫物件:資料庫,表,列等。關鍵字:create,drop,alter 等

2. dml(data manipulation language)資料操作語言

用來對資料庫中的表進行增刪改。關鍵字:insert,delete,update 等

3. dql(data query language)資料查詢語言

用來查詢資料庫中表的記錄(資料)。關鍵字:select,where 等

4. dcl(data control language)資料控制語言(了解)

用來定義資料庫的訪問許可權和安全級別,及建立使用者。關鍵字:grant,revoke 等

1. 運算元據庫:crud

1. c(create):建立

* 直接建立乙個資料庫(如果該資料庫重名會報錯)

* create database 資料庫名稱;

* 判斷如果資料庫不重名就建立(重名不會報錯但也不會建立新的)

* create database if not exists 資料庫名稱;

* 建立資料庫的時候指定其使用的字符集

* create database 資料庫名稱 character set 字符集名稱(如gbk、utf8等);

* 建立名為db4的資料庫,判斷是否存在並指定字符集為gbk

* create database if not exists db4 character set gbk;

2. r(retrieve):查詢

* 查詢所有資料庫的名稱:

* show databases;

* 查詢某個資料庫的字符集(真實效果是查詢某個資料庫的建立語句)

* show create database 資料庫名稱;

3. u(update):修改

* 修改資料庫的字符集

* alter database 資料庫名稱 character set 字符集名稱;

4. d(delete):刪除

* 刪除資料庫(刪除不存在的資料庫會報錯)

* drop database 資料庫名稱;

* 判斷如果資料庫存在就刪除(不存在不會報錯)

* drop database if exists 資料庫名稱;

5. 使用資料庫

* 查詢當前正在使用的資料庫名稱

* select database();

* 使用資料庫

* use 資料庫名稱;

2. 操作表

1. c(create):建立

* 語法

create table 表名(

列名1 資料型別1,

列名2 資料型別2,

......

列名n 資料型別n(最後乙個沒有逗號)

);* 資料型別:

1. int:整數型別

* age int,

2. double:小數型別

* score double(5,2)

* 這個小數最多有5位小數點後面保留2位小數,即最大值為999.99

3. data:日期,只包含年月日,yyyy-mm-dd

4. datatime:日期,包含年月日時分秒 yyyy-mm-dd hh:mm:ss

5. timestamp:時間戳型別 包含年月日時分秒 yyyy-mm-dd hh:mm:ss

* 如果不給這個字段賦值,或賦值為null,則預設使用當前的系統時間來自動賦值

6. varchar:字串

* name varchar(20):姓名最大20個字元

* zhangsan 8個字元

* 張三 2個字元

7. 建立乙個下圖所示的表

* 建立表

create table student(

id int,

name varchar(32),

age int,

score double(4,1),

birthday date,

insert_time timestamp

);2. r(retrieve):查詢

* 查詢某個資料庫中所有的表名稱(需要先 use 資料庫)

* show tables;

* 查詢表結構

* desc 表名稱;

3. u(update):修改

1. 修改表名

alter table 表名 rename to 新的表名;

2. 修改表的字符集

* 檢視表的字符集

show create table 表名;

* 修改表的字符集

alter table 表名 character set 字符集名稱;

3. 新增一列

alter table 表名 add 列名 資料型別;

4. 修改列名稱、型別

* 即改名稱又改資料型別

alter table 表名 change 舊列名 新列名 新資料型別;

* 只改資料型別

alter table 表名 modify 列名 新資料型別;

5. 刪除列

alter table 表名 drop 列名;

4. d(delete):刪除

* drop table 表名;

* drop table if exists 表名;

SQL學習筆記二

1.條件判斷函式case case when expr1 then v1 when expr2 then v2 else vn end case表示函式開始,end表示函式結束。如果表示式expre1成立,則返回v1值 如果表示式expr2成立,則返回v2值 以此類推,最後遇到else時,返回vn值...

Mysql學習筆記二

接著上面繼續學習,下面主要是以索引為主。建立索引 有四種型別的索引 主鍵 唯一索引 全文索引和普通索引 它是值惟一並且沒有值為null的域的索引。如 create table tablename filename columntype not null,filedname2.primary key ...

mysql學習筆記(二)

在具體應用中,需要實現在乙個查詢語句中顯示多張表的資料,這就是所謂的多表資料連線查詢,簡稱連線查詢。1.並 把具有相同字段數目和字段型別的表合併到一起。2.笛卡爾積 這個比較難懂,還是直接上圖 3.內連線 inner join 為了便於使用者操作,mysql專門提供了一種針對資料庫操作的運算 連線。...