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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java数据库篇3——SQL

發布時間:2025/3/12 java 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java数据库篇3——SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java數據庫篇3——SQL

結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫 查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統

1、SQL分類

分類說明
數據定義語言簡稱DDL(Data Definition Language),用來定義數據庫對象:數據庫,表,列 等
數據操作語言簡稱DML(Data Manipulation Language),用來對數據庫中表的記錄進行更新
數據查詢語言簡稱DQL(Data Query Language),用來查詢數據庫中表的記錄
數據控制語言簡稱DCL(Date Control Language),用來定義數據庫的訪問權限和安全級別, 及創建用戶

2、Mysql數據類型

3、DDL(數據定義語言)

3.1、操作數據庫

查詢表

#查看所有表 Show tables; #查看指定表的內容 Desc 表名; #查看表的創建語句(字符集) Show create table 表名;

創建表

Create table 表名(列名1 數據類型1,列名2 數據類型2,列名3 數據類型3 );

復制表1

Create table 表名2 like 表名1;

修改表

#修改表名 Alter table 原表名 rename to 新表名; #修改表的字符集 Alter table 表名 character set 字符集; #在表內添加一行 Alter table 表名 add 列名 數據類型; #修改列名 Alter table 表名 change 原列名 新列名 數據類型(可修改); #修改列的數據類型 Alter table 表名 modify 列名 新數據類型; #刪除列 Alter table 表名 drop 列名;

刪除表

Drop table 表名; #存在此表才刪除 Drop table if exists 表名;

3.2、DDL操作表

查詢表

#查看所有表 Show tables; #查看指定表的內容 Desc 表名; #查看表的創建語句(字符集) Show create table 表名;

創建表

創建表 Create table 表名(列名1 數據類型1,列名2 數據類型2,列名3 數據類型3 );

復制表1

Create table 表名2 like 表名1;

修改表

#修改表名 Alter table 原表名 rename to 新表名; #修改表的字符集 Alter table 表名 character set 字符集; #在表內添加一行 Alter table 表名 add 列名 數據類型; #修改列名 Alter table 表名 change 原列名 新列名 數據類型(可修改); #修改列的數據類型 Alter table 表名 modify 列名 新數據類型; #刪除列 Alter table 表名 drop 列名;

刪除表

Drop table 表名; #存在此表才刪除 Drop table if exists 表名;

4、DML(數據操作語言)

4.1、添加數據

#添加單個數據 Insert into 表名 (1,列2……列n) values (1,值2……值n); #添加多個數據 Insert into 表名 (1,列2……列n) values (1,值2……值n), (1,值2……值n), (1,值2……值n);
  • 添加表中所有列數據的時候,可以省略列這個括號
  • 列和值要一一對應
  • Null可以作為占位符使用
  • 值除了數字類型和null,其他類型都要用引號引起來

4.2、修改數據

Update表名 set=值,列=where 條件語句;
  • 值除了數字類型和null,其他類型都要用引號引起來
  • 不加條件就修改所有的記錄

4.3、刪除數據

Delete from 表名 where 條件語句;
  • 不加條件刪除所有的記錄

  • truncate table 表名;刪除表,創建一個一摸一樣的空表

5、DQL(數據查詢語言)

5.1、語法

select字段列表 from表名列表 where條件列表 group by分組字段 having分組之后的條件 order by排序 limit分頁限定

5.2、基礎查詢

#多字段查詢 Select 列名1,列名2 from 表名; #去重查詢 Select distinct 列名1,列名2 from 表名;(只有結果集完全相同才會被去重) #計算列的查詢 Select 列名1,列名2,列名1+列名2 from 表名;(一般都是數值相加,null+任何數都是為null) #Ifnull函數 Select 列名1,列名2,ifnull(列名10+ ifnull(列名20from 表名; #查詢所有列 Select * from 表名;

5.3、條件查詢

  • >

  • <

  • =

  • <>不等于

  • !=不等于

  • And等同于&&

  • Or等同于||

  • Between,,,and,,,包含邊界,not不包含

  • In(值1,值2,,,值n)集合

  • Null不能用=判斷要用is和is not

  • As起別名,數據庫,表,都可以起別名,且as可以省略

select 列名 from 表名 where 條件表達式

5.4、模糊查詢

  • _占位符,單個任意字符
  • %占位符,任意多個任意字符
SELECT * FROM address WHERE home LIKE ‘_澈’;

5.5、排序查詢

  • 升序ASC
  • 降序DESC
Select1,列2 from 表名 order by1 排序方式1,列2,排序方式2;

5.6、聚合函數

5.6.1、count函數

#count(*):返回表中滿足where條件的行的數量 select count(*) from student; #count(列):返回列值非空的行的數量 select count(score) from student; #count(distinct 列):返回列值非空的、并且列值不重復的行的數量 select count(distinct score) from student;

5.6.2、max和min函數

統計列中的最大最小值

select max(score) from student; select min(score) from student;

如果統計的列中只有NULL值,那么MAX和MIN就返回NULL

5.6.3、sum和avg函數

求和與求平均

select sum(score) from student; select avg(score) from student; select avg(ifnull(score,0)) from student;

表中列值為null的行不參與計算,要想列值為NULL的行也參與組函數的計算,必須使用IFNULL函數對NULL值做轉換

5.7、分組查詢

分組查詢的一定是分組字段或者聚合函數,否則將沒有意義

Select1,列2 from 表名 group by 列名; Select1,列2,列名 from 表名 group by 列名 having 條件語句;

Where分組前限定,having在分組后限定,where不可以判斷聚合函數,having可以

5.8、分頁查詢

#Limit 開始索引 每頁的條數; Select * from 表名 limit 開始索引(每頁條數*當前頁碼減一) 每頁條數;

6、DCL(數據控制語言)

用來管理用戶和管理權限

用戶的信息都放在mysql數據庫下的user表中

6.1、管理用戶

  • localhost
  • %
#添加用戶 Create user '用戶名'@'主機名' identified by '密碼'; #修改用戶 Alter user '用戶名'@'主機名’ identified by '密碼'; #刪除用戶 Drop user '用戶名'@'主機名';

6.2、權限管理

#查詢權限 Show grants for '用戶名'@'主機名'; #添加權限 Grant 權限列表 on 數據庫.表名 to '用戶名'@'主機名'; #刪除權限 Revoke 權限列表 on 數據庫.表名 from '用戶名'@'主機名';

均可使用通配符,權限的通配符用all不是*

總結

以上是生活随笔為你收集整理的Java数据库篇3——SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

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