日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 介绍 知乎_SQL介绍——Mysql

發布時間:2024/9/19 数据库 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 介绍 知乎_SQL介绍——Mysql 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、運算符號

二、查詢關鍵字

1.各關鍵字優先級

where > group by > having > order by > limit

2.Select

語法:select 字段名 from 表名 where 條件語句;

說明: - 多個字段名用,隔開,也可用*表示所有字段 - 字段名可用distinct修飾,表示查詢結果中該字段相同的數據只會保留第一行數據

3.Where

select、update、delete等其他DDL語句的子句,用來表示執行操作的條件

語法:where 條件字段 運算符 條件值

說明: - 運算符后面的條件值,如果是文本類型,需要使用引號包含,非文本類型的值不要用引號包含。 - where子句中可以跟多個條件,每2個條件之間用邏輯運算符 and 或者 or 分隔開。

4.like

作為where子句中的比較運算符來使用,通常與通配符配合進行模糊匹配。

語法:

where 條件字段 like '[abcd]_%';

5.Top或者Limit或者Rownum

從查詢結果中篩選出排序靠前的指定行數數據。

并非所有的數據庫管理系統都支持top語句,不同的數據庫管理系統中,top語句的語法也不相同。

SQL Server:

語法:select top 5 LastName from Persons

說明:從Persons表中,搜索排序在前5的數據

語法:select top 50 percent from Persons

說明:從Persons表中,搜索排序在前50%的數據

Mysql:

語法:select LastName from Persons limit 5

說明:從Persons表中,搜索排序在前5的數據

Oracle:

語法:select LastName from Persons where rownum<=5

說明:從Persons表中,搜索排序在前5的數據

6.Order By

對搜查的結果進行排序顯示,可以指定多列,對搜查結果進行升序或者降序顯示

select * from Persons order by FirstName asc,LastName desc

說明:多個排序字段之間用,分隔開

Asc表示升序,Desc表示降序

每個排序字段要單獨指定圣墟還是降序

7.Case When

將查詢結果某個字段的值,根據指定的條件轉換為其他值。

語法1:

case

when 條件1 then 值1

when 條件2 then 值2

else 值3

end as 字段名

語法2:

case 字段名

when 現有值1 then 修改值1

when 現有值2 then 修改值2

else 修改值3

end as 字段名

三、查詢技巧

1.計算日期差

Mysql中沒有直接計算兩個日期差值的函數,可以用以下方式計算:

To_Days(date1) - To_Days(date2)

2.時間戳與日期比較

最好將日期轉化為時間戳進行比較。因為將時間戳轉換為日期的函數from_unixtime不支持負數,可能導致比較結果出錯。

3.設置自增數據

Mysql的命令支持自增類型的語法:

set @num:=1;

update devices set imei=(@num:=(@num+1));

4.將查詢結果插入其他表

insert into table1(name,type) select name,type from table2

5.SQL嵌套使用

語法:select * from table1 where id in (select id from table2);

說明:若子查詢結果只包含一個字段,可作為父查詢中符號in的條件

語法:select * from (select * from table1 ) as table2

說明:若子查詢結果只包含一個字段,建議給子查詢起一個別名,作為父查詢中的一張表來使用

四、其他數據操作語句

1.Update

修改指定數據表中,符合條件行的某些字段值

語法:update 表名 set 列名=目標值 where 條件語句

說明:

1.可設定多個字段值,鍵值對用,隔開

2.where子句表示只更新符合條件的數據

2.Insert into

向指定的數據表中插入數據。

語法:insert into 表名(字段名1,字段名2) values(值1,值2);

說明:

1. 表名后面的字段數量,比如與values中的值數量保持一致。

2. 表名后面的字段,可以只是數據表中的一部分字段。語句執行后,未指定的字段會設置為默認值。

3. 表名后面的字段名,不要用引號包含。如果values后面的值是字符型,需要用引號包含。

4. 語句執行后,values后面的值會按照編寫的順序,依次插入到表名后面字段中。

語法:insert into 表名 values(值1,值2)

說明:

1. 如果表名后面沒有指定字段列表,表示數據表中的每個字段都需要插入值。

2. 此時values后面值得數量,必須與數據表中的所有字段數保持一致

3.Delete

刪除指定數據表中,符合條件的數據行

語法:delete from Persons where LastName='Gates'

說明:帶有where子句表示只刪除符合where條件的數據

語法1:delete from Persons

語法2:delete * from Persons

說明:刪除所有數據但是保留表的結構、屬性、索引

五、數據庫控制語句

1.連接服務器

連接到本地:

語法:mysql -u username -ppassword

說明:-u和username之間可以有空格,也可以不寫空格

如果用戶沒有設置密碼,不要加上-p+password這部分內容

-p和password之間不要輸入空格,否則必須再輸入一次密碼

連接到其他服務器:

語法:mysql -h 192.168.2.1 -u username -ppassword

說明:-h和ip地址之間可以有空格,也可以不寫空格

參照“連接到本地”的3條說明

斷開連接:

語法:exit

2.設置密碼

添加密碼:

語法:mysqladmin -u root password "password"

取消密碼:進入mysql數據庫

將user數據表中,password的字段修改為空

重啟mysql服務,或者使用“重新載入數據”命令

修改密碼:

語法:set password for 'root'@'localhost' = password('123456'); 說明:登錄Mysql之后使用

語法:mysqladmin -u root -p password "NewPassword"

語法:mysqladmin -u root -pOldPassword password "NewPassword"

語法:update user set Password=password("123456") where user="root"; 說明: 1. 登錄Mysql之后使用 2. 修改后重啟mysql服務,或者使用“重新載入數據”命令

3.賬號管理

創建用戶:

語法:create user 'username'@'host' identified by 'password';

說明:host表示允許用戶連接數據庫的主機,localhost表示本地,%表示任意主機

password可以為空,表示該用戶登錄不需要密碼

授權:

語法:grant privileges on DatabaseName.TableName to 'username'%'host' with grant option;

說明:privileges表示賦予用戶的權限,權限包括select、insert、update、delete,在授權時,可以指定多個權限,兩個權限之間用","分割。也可以用all表示所有權限

Database表示數據庫名,可以用*表示所有數據庫

TableName表示表名,可以用*表示所有表

with grant option:如果授權命令中沒有加入這條選項,那么被授權的用戶,不可以對其他用戶進行授權

identified by 'password':在授權命令中,也可以加入這條選項,來修改命令或者去掉命令

顯示授權:

語法 :show grants for 'username'@'host'

取消授權:

語法 :revoke privileges on DatabaseName.TableName from 'username'@'host' 說明:取消授權時,指定的DatabseName.TableName范圍,必須與進行授權時指定的范圍一直,取消授權才能生效

六、數據庫、數據表操作語句

創建數據庫:

語法:create database DatabaseName default character set 編碼 collate 編碼

顯示數據庫列表:

語法:show databases;

判斷表是否存在:

語法:if exists tablename

創建表:

語法:create tablename if not exists tablename 說明:判斷表是否存在,如果不存在的話再創建表

用查詢結果創建臨時表:

語法:create temporary table TableName ( select ...);

刪除表:

語法:drop table if exists TableName; 說明:如果表tablename存在就刪除這張表

重新載入數據:

語法:flush privileges

七、函數庫

1.數學函數取模:mod(a,b)

在(0,1)之間隨機:rand()

四舍五入取整:round(a,b)

2.字符串函數字符串拼接:concat(str1,str2...)

字符串替換:replace(字段名,原字符,替換后字符)

3.數據類型轉換字符串to數字:select name+0

4.日期函數

函數:

時間格式:

總結

以上是生活随笔為你收集整理的mysql 介绍 知乎_SQL介绍——Mysql的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。