mysql學習筆記之sql基礎語法

2021-10-12 02:37:30 字數 3871 閱讀 8761

結構化查詢語言(structured query language)

由國際標準化組織(iso)制定的,對dbms的統一操作方式(例如相同的語句可以操作:mysql、oracle等)

ps:例如sql99,即2023年制定的標準。

某種dbms不只會支援sql標準,而且還會有一些自己獨有的語法,這就稱之為方言!例如limit語句只在mysql中可以使用。

資料定義語言,用來定義資料庫物件:庫、表、列等。(建立、刪除、修改資料庫或者表結構)

資料庫

# 檢視所有資料庫

show databases

# 切換(選擇要操作的)資料庫:

use 資料庫名字

# 建立資料庫,資料庫名稱為:mydb1

create database [if not exists] mydb1 [charset=utf8]

# 刪除mydb1資料庫

drop database [if exists] mydb1

# 修改資料庫mydb1編碼

alter database mydb1 character set utf8

資料型別(列型別)

型別說明

int整型

double

浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值為999.99

decimal

浮點型,在表單錢方面使用該型別,因為不會出現精度缺失問題

char

固定長度字串型別。 char(255),資料的長度不足指定長度,補足到指定長度!

varchar

可變長度字串型別

text(clob)

字串型別(有很小,小,中,大四種)

date

日期型別,格式為:yyyy-mm-dd

time

時間型別,格式為:hh:mm:ss

timestamp

時間戳型別

# 建立表

create table [if not exists] 表名(列名 列型別, 列名 列型別, ...列名 列型別);

# 檢視當前資料庫中所有表名稱

show tables;

# 檢視指定表的建立語句

show create table 表名;

# 檢視表結構

desc 表名;

# 刪除表

drop table 表名;

# 修改表-新增列

alter table 表名 add (列名 列型別,

列名 列型別,

...);

# 修改表-修改列型別(如果被修改的列已存在資料,那麼新的型別可能會影響到已存在資料)

alter table 表名 modify 列名 列型別;

# 修改表-修改列名

alter table 表名 change 原列名 新列名 列型別;

# 修改表-刪除列

alter table 表名 drop 列名;

# 修改表-修改表名

alter table 原表名 rename to 新錶名;

資料操作語言,用來定義資料庫記錄。(增加、刪除、修改表資料)

插入資料

修改資料

刪除資料

資料控制語言,用來定義訪問許可權和安全級別

慣例:乙個專案建立乙個使用者。乙個專案對應的資料庫只有乙個。這個使用者只能對這個資料庫有許可權,其他資料庫就操作不了了。

建立使用者

# 使用者只能在指定的ip位址上登入

create user 使用者名稱@ip位址 identified by '密碼';

# 使用者可以在任意ip位址上登入

create user 使用者名稱@'%' identified by '密碼' ;

給使用者授權

# 給使用者分派在指定的資料庫上的指定的許可權

grant 許可權1, … , 許可權n on 資料庫.* to 使用者名稱@ip位址

例子:

# 給user1使用者分派在mydb1資料庫上的create、alter、drop、insert、update、delete、select許可權

grant create,alter,drop,insert,update,delete,select on mydb1.* to user1@localhost;

# 給使用者分派指定資料庫上的所有許可權

grant all on 資料庫.* to 使用者名稱@ip位址;

撤銷授權

# 撤消指定使用者在指定資料庫上的指定許可權

revoke 許可權1, … , 許可權n on 資料庫.* from 使用者名稱@ip位址

例子

# 撤消user1使用者在mydb1資料庫上的create、alter、drop許可權

revoke create,alter,drop on mydb1.* from user1@localhost;

檢視許可權

# 檢視指定使用者的許可權

show grants for 使用者名稱@ip位址

刪除使用者

# 刪除指定使用者許可權

drop user 使用者名稱@ip位址

資料查詢語言,用來查詢記錄(查詢表中的資料,不會改變表記錄)

一, 基本查詢

條件控制

條件查詢

與前面介紹的update和delete語句一樣,select語句也可以使用where子句來控制記錄。

select empno,ename,sal,comm from 表名 where sal > 10000 and comm is not null;

select empno,ename,sal from 表名 where sal between 20000 and 30000;

select empno,ename,job from 表名 where job in ('經理', '董事長');

模糊查詢

當你想查詢姓張,並且姓名一共兩個字的員工時,這時就可以使用模糊查詢

# 模糊查詢需要使用運算子:like,其中_匹配乙個任意字元,注意,只匹配乙個字元而不是多個。

# 下面語句查詢的是姓張,名字由兩個字組成的員工。

select * from 表名 where ename like '張_';

如果我們想查詢姓張,名字幾個字可以的員工時就要使用「%」了。

# 其中%匹配0~n個任意字元,所以上面語句查詢的是姓張的所有員工。

select * from 表名 where ename like '張%';

# 千萬不要認為下面這個語句是在查詢姓名中間帶有阿字的員工,因為%匹配0~n個字元,所以姓名以阿開頭和結尾的員工也都會查詢到。

select * from 表名 where ename like '%阿%';

# 這個條件等同與不存在,但如果姓名為null的查詢不出來!

select * from 表名 where ename like '%';

二, 排序

三,聚合查詢

四,分組查詢

五,limit子句(mysql)

六,關鍵字順序

一名職場老菜鳥,夢想成為一名有頭髮的程式設計大牛。

MySQL學習之SQL基礎

一 sql語句分類 ddl語句 資料定義語句,這些語句定義了不同的資料段 資料庫 表 列 索引等資料庫物件 dml語句 資料操縱語句,用於新增 刪除 更新和查詢資料庫記錄,並檢查資料完整性 dcl語句 資料控制語句,用於控制不同資料段直接的許可和訪問級別的語句,定義了資料庫 表 字段 使用者的訪問許...

MYSQL學習筆記 SQL語句基礎

增 insert into grade values 3,english 80 insert into class select stuid,class from grade 值需匹配 刪 delete from grade where id 3 改 update grade set grade 6...

MySQL學習筆記一( SQL基礎)

sql語句是structure query language 結構化查詢語句 的縮寫,它是使用關係模型的資料庫應用語句。sql語句可以包括三個類別 ddl資料定義語句 dml資料操作語句 dcl資料控制語句。1.ddl data definition language 定義資料庫物件,如欄位,表,列...