bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

mysql數據怎么操作,mysql簡單操作

在Intellij IDEA中如何操作MYSQL數據表

我們平時都是通過數據庫管理工具操作MYSQL數據表,那么如何在Intellij IDEA中操作MYSQL數據表呢?下面我給大家分享一下。

創新互聯建站主營武夷山網站建設的網絡公司,主營網站建設方案,重慶App定制開發,武夷山h5重慶小程序開發搭建,武夷山網站營銷推廣歡迎武夷山等地區企業咨詢

工具/材料

Intellij IDEA

01

首先點擊右側的Data Source,選擇下拉菜單中的MySQL選項,如下圖所示

02

接下來在彈出的Data Sources and Drivers界面中輸入Mysql的用戶名和密碼進行數據庫連接,如下圖所示

03

連接成功MYSQL數據庫以后,數據庫中的表都會顯示出來了,如下圖所示,我們雙擊要操作的數據表

04

然后在右側就會顯示此數據表的所有數據,在這里可以對數據表的數據進行相應的增刪改查,如下圖所示

05

接下來點擊此數據表頂部的加號按鈕進行數據行的增加,如下圖所示

06

編輯完新的數據以后需要右鍵單擊數據行,然后選擇Submit New Row選項,如下圖所示

07

接下來我們還可以在輸入欄中通過列表進行數據的過濾,如下圖所示

08

最后,如果你不習慣操作界面,那么可以打開右側的SQL窗口按鈕,如下圖所示

09

然后在工作區就會展現出SQL編輯區,我們就可以在里面輸入SQL語句進行數據表的操作,如下圖所示

mysql基本操作有哪些

mysql基本操作有:

命令行

1、顯示當前數據庫服務器中的數據庫列表:mysql SHOW DATABASES;

2、建立數據庫:mysql CREATE DATABASE 庫名;

3、建立數據表:mysql USE 庫名;mysql CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

4、刪除數據庫:mysql DROP DATABASE 庫名;

5、刪除數據表:mysql DROP TABLE 表名;

6、將表中記錄清空:mysql DELETE FROM 表名;

7、往表中插入記錄:mysql INSERT INTO 表名 VALUES ("hyq","M");

8、更新表中數據:mysql- UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';

9、用文本方式將數據裝入數據表中:mysql load data local infile "d:/mysql.txt" into table 表名;

10、導入.sql文件命令:mysql USE 數據庫名;mysql source d:/mysql.sql;

11、命令行修改root密碼:mysql update mysql.user set password=password('新密碼') where user='root';mysql flush privileges;

12.修改密碼的三種方法:mysqlupdate user set password=password('123456') where user='joy_pen';mysqlflush privileges;mysqlset password for 'joy_oen'=password('123456');mysqlgrant usage on *.* to 'joy_pen' identified by '123456';

1、創建數據庫

命令:create database 數據庫名 例如:建立一個名為xhkdb的數據庫mysql create database xhkdb;

2、顯示所有的數據庫

命令:show databases (注意:最后有個s)mysql show databases;

3、刪除數據庫

命令:drop database 數據庫名 例如:刪除名為 xhkdb的數據庫mysql drop database xhkdb;

4、連接數據庫

命令: use 數據庫名 例如:如果xhkdb數據庫存在,嘗試存取它:mysql use xhkdb; 屏幕提示:Database changed

5、當前選擇(連接)的數據庫mysql select database();

6、當前數據庫包含的表信息:mysql show tables; (注意:最后有個s)

三、表操作,操作之前應連接某個數據庫

1、建表

命令:create table 表名 ( 字段名1 類型1 [,..字段名n 類型n]);

mysql create table MyClass(

id int(4) not null primary key auto_increment,

name char(20) not null,

sex int(4) not null default ''0'',

degree double(16,2));

2、獲取表結構

命令: desc 表名,或者show columns from 表名

mysqlDESCRIBE MyClass

mysql desc MyClass;

mysql show columns from MyClass;

3、刪除表

命令:drop table 表名

例如:刪除表名為 MyClass 的表 mysql drop table MyClass;

4、插入數據

命令:insert into 表名 [( 字段名1[,..字段名n ])] values ( 值1 )[, ( 值n )]

例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績為96.45, 編號為2 的名為Joan 的成績為82.99,編號為3 的名為Wang 的成績為96.5.

mysql insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

5、查詢表中的數據

1)、查詢所有行

命令: select 字段1,字段2,... from 表名 where 表達式

例如:查看表 MyClass 中所有數據 mysql select * from MyClass;

2)、查詢前幾行數據

例如:查看表 MyClass 中前2行數據

mysql select * from MyClass order by id limit 0,2;

6、刪除表中數據

命令:delete from 表名 where 表達式

例如:刪除表 MyClass中編號為1 的記錄

mysql delete from MyClass where id=1;

7、修改表中數據:update 表名 set 字段=新值,… where 條件

mysql update MyClass set name=''Mary'' where id=1;

8、在表中增加字段:

命令:alter table 表名 add 字段 類型 其他;

例如:在表MyClass中添加了一個字段passtest,類型為int(4),默認值為0

mysql alter table MyClass add passtest int(4) default ''0''

9、更改表名:

命令:rename table 原表名 to 新表名;

例如:在表MyClass名字更改為YouClass

mysql rename table MyClass to YouClass;

更新字段內容

update 表名 set 字段名 = 新內容

update 表名 set 字段名 = replace(字段名,''舊內容'',''新內容'');

MySQL數據庫基礎+ 數據庫的基本操作?

需要用的資料以鏈接的形式給需要的同學。

我用的mysql版本為: Mysql-5.5.45-win64.msi 密碼是:26zw

圖形化工具 Navicat(前期不推薦用,直接手動敲): Navicat 密碼:c7fs

開始我的MySQL之旅吧 始于2016.12.04

--WH

一、數據庫的安裝

這個就不在這里過多闡述了,因為網上實在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程(MySQL安裝教程)去看,就能夠安裝完好。

安裝好mysql后,如果需要使用windows命令窗口(也就是cmd)來操作mysql,那么就需要配置環境變量,在安裝好的mysql下找到bin,將其目錄放到環境變量path中去,就行了,檢測成功與否的方法是在cmd命令窗口中輸入mysql,就會出現一大段英文,就說明成功了,反之失敗,如果不會的話就去百度搜教程。

二、數據庫的基本操作

1、開啟mysql服務命令

net start mysql

2、進入mysql的兩種方式

明文進入:mysql -uroot -proot格式:mysql -u帳號 -p密碼

密文進入:mysql -uroot -p 按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示為***這樣。

3、查看mysql中所有的數據庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)

前面四個數據庫是mysql中自帶的,也就是必須的.

SHOW DATABASES;

4、創建名為test_1的數據庫

格式:CREATE DATABASE 數據庫名

CREATE DATABASE test_1;

5、刪除名為test_1的數據庫

格式:DROP DATABASE 數據庫名

DROP DATABASE test_1;

總結:學習了對數據庫的三個操作,1、查看所有數據庫 2、創建數據庫 3、刪除數據庫

三、數據表的基本操作

數據表和數據庫還有Mysql三者的關系

mysql中保存了很多數據庫、一個數據庫中可以保存很多表。

對數據表的增(創建表)刪(刪除表)改(修改表字段)查(查詢表結構)。 注意:這里的操作對象是表,對表的操作也就是表的結構,和表中的字段的操作(字段和記錄要分清楚)

前提:表是在數據庫下的,所以要先確實使用哪個數據庫。

USE test_1;

1、創建數據表

格式:CREATE TABLE 數據表名(

 字段名1數據類型[列級別約束條件],

 字段名2數據類型[列級別約束條件],

 字段名3數據類型[列級別約束條件]

 ); 

注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。

解釋:

1、[]中括號中的內容表示可以有可以沒有,

2、列級別這個“列”一定要搞清楚說的是什么,一張表中有行有列,列表示豎,行表示橫 

3、約束條件后面會講到

1.1、創建沒有約束的student表

 CREATE TABLE student( idINT(11), nameVARCHAR(12), ageINT(11)  );

注釋:SHOW TABLES 查詢數據庫底下的所有表。

1.2、創建有約束的student表

 六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認約束、自動增加

1.2.1:主鍵約束

PRIMARY KEY(primary key):獨一無二(唯一)和不能為空(非空),通俗的講,就是在表中增加記錄時,在該字段下的數據不能重復,不能為空,比如以上面創建的表為例子,在表中增加兩條記錄,如果id字段用了主鍵約束。則id不能一樣,并且不能為空。一般每張表中度有一個字段為主鍵,唯一標識這條記錄。以后需要找到該條記錄也可以同這個主鍵來確認記錄,因為主鍵是唯一的,并且非空,一張表中每個記錄的主鍵度不一樣,所以根據主鍵也就能找到對應的記錄。而不是多條重復的記錄。如果沒有主鍵,那么表中就會存在很多重復的記錄,那么即浪費存儲空間,在查詢時也消耗更多資源。

一般被主鍵約束了的字段度習慣性的稱該字段為該表的主鍵

單字段主鍵約束

兩種方式都可以

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12),nameVARCHAR(12),

ageINT(11) ageINT(11),

); PRIMARY KEY(id) );

多字段主鍵約束(復合主鍵)

這個id和name都市主鍵,說明在以后增加的插入的記錄中,id和name不能同時一樣,比如說可以是這樣。一條記錄為id=1,name=yyy、另一條記錄為:id=1,name=zzz。 這樣是可以的。并不是你們所理解的兩個字段分別度不可以相同。

CREATE TABLE student(CREATE TABLE student(

idINT(11) PRIMARY KEY,idINT(11),

nameVARCHAR(12) PRIMARY KEY, nameVARCHAR(12),

ageINT(11) ageINT(11),

);PRIMARY KEY(id,name) );

1.2.2:外鍵約束

什么是外鍵舉個例子就清楚了,有兩張表,一張表是emp(員工)表,另一張表是dept(部門)表,一個員工屬于一個部門,那么如何通過員工能讓我們自己他在哪個部門呢?那就只能在員工表中增加一個字段,能代表員工所在的部門,那該字段就只能是存儲dept中的主鍵了(因為主鍵是唯一的,才能確實是哪個部門,進而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區分了。),像這樣的字段,就符合外鍵的特點,就可以使用外鍵約束,使該字段只能夠存儲另一張表的主鍵。如果不被外鍵約束,那么該字段就無法保證存儲進來的值就一定是另一張表的主鍵值。

外鍵約束的特點:

1、外鍵約束可以描述任意一個字段(包括主鍵),可以為空,并且一個表中可以有多個外鍵。但是外鍵字段中的值必須是另一張表中的主鍵。

2、這樣被外鍵關聯的兩種表的關系可以稱為父子表或者主從表。子表(從表)擁有外鍵字段的表,父表(主表)被外鍵字段所指向的表。

3、子表被外鍵約束修飾的字段必須和父表的主鍵字段的類型一樣。

注意:一個表中有被外鍵修飾的字段,就稱該表有外鍵(是“有外鍵”。而不是“是外鍵”),并會給該表中的外鍵約束取一個名稱,所以我們常說的這個表有沒有外鍵,指的不是被外鍵約束修飾的字段名,而是指這個表是否有存在外鍵約束。也就是說,不能說這個表的外鍵是xxx(該表中被外鍵約束修飾的字段名),這種說法是錯誤的,但是大多數人已經習慣了這樣,雖然影響不大,但是在很多時候需要理解一個東西時,會造成一定的困擾。

格式:CONSTRAINT外鍵名稱FOREIGN KEY(被外鍵約束的字段名稱)REFERENCES 主表名(主鍵字段)

英文解釋:CONSTRAINT:約束REFERENCES:參考

CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22),

location VARCHAR(50),

PRIMARY KEY(id)

);

CREATE TABLE tableB

(

id INT(11),

name VARCHAR(22) NOT NULL,

deptId INT(11),

PRIMARY KEY(id),

CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)

);

 解釋:tableB中有一個名為tableA_tableB_1的外鍵關聯了tableA和tableB兩個表,被外鍵約束修飾的字段為tableB中的deptId,主鍵字段為tableA中的id 

1.2.3:非空約束

NOT NULL. 被該約束修飾了的字段,就不能為空,主鍵約束中就包括了這個約束

CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22) NOT NULL,

location VARCHAR(50),

PRIMARY KEY(id)

);

1.2.4:唯一約束

UNIQUE 被唯一約束修飾了的字段,表示該字段中的值唯一,不能有相同的值,通俗點講,就好比插入兩條記錄,這兩條記錄中處于該字段的值不能是一樣的。

  CREATE TABLE tableA

(

id INT(11),

name VARCHAR(22) UNIQUE,

location VARCHAR(50),

PRIMARY KEY(id)

);

也就是說在插入的記錄中,每條記錄的name值不能是一樣的。

1.2.5:默認約束

Default 指定這一列的默認值為多少,比如,男性同學比較多,性別就可以設置為默認男,如果插入一行記錄時,性別沒有填,那么就默認加上男 

CREATE TABLE table

(

id INT(11) PRIMARY KEY,

name VARCHAR(22) NOT NULL,

deptId INT(11) DEFAULT 1111,

salary FLOAT

);

1.2.6:自動增加

AUTO_INCREMENT 一個表只能一個字段使用AUTO_INCREMENT,并且使用這個約束的字段只能是整數類型(任意的整數類型 TINYINT,SMALLIN,INT,BIGINT),默認值是1,也就是說從1開始增加的。一般就是給主鍵使用的,自動增加,使每個主鍵的值度不一樣,并且不用我們自己管理,讓主鍵自己自動生成

CREATE TABLE table ( id INT(11) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(22) NOT NULL );

2、查詢表結構

2.1、查看表基本結構語句

格式1:DESCRIBE 表名/DESC 表名這兩個的功能是一樣的,簡寫了單詞describe

DESCRIBE student;

2.2、查看創建表的語句 

 格式:SHOW CREATE TABLE 表名

 SHOW CREATE TABLE student;

這樣顯示的格式很不好,看不清楚,所以有了下面這個語句

格式:SHOW CREATE TABLE 表名\G

SHOW CREATE TABLE student\G;

3、修改數據表

修改數據表包括:對表中字段的增加、刪除、修改。 在這個里面用的關鍵字為 ALTER

3.1、修改表名

格式:ALTER TABLE舊表名 RENAME[TO]新表名;

將student表名改為student1(改完后在改回來)

ALTER TABLE student RENAME TO student1;

3.2、修改表中的字段名

格式:ALTER TABLE表名 CHANGE舊字段名新字段名新數據類型

將student表中的name字段名改為 username

ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的數據類型

格式:ALTER TABLE表名 MODIFY字段名數據類型 

ALTER TABLE student MODIFY username VARCHAR(20);

解釋:只能修改字段名的數據類型,但是其原理跟上面change做的事情一樣,這里也有修改字段名的過程,只不過修改后的字段名和修改前的字段名相同,但是數據類型不一樣。

3.4、修改字段的排列位置

 方式1:ALTER TABLE表名 MODIFY字段1數據類型 FIRST|AFTER字段2

 解釋:將字段1的位置放到第一,或者放到指定字段2的后面

 ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

方式2:ALTER TABLE表名 CHANGE字段1字段2數據類型 FIRST|AFTER字段3 

解釋:其實是一樣的,將是字段2覆蓋字段1,然后在進行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

總結

CHANGE和MODIFY的區別?

原理都市一樣的,MODIFY只能修改數據類型,但是CHANGE能夠修改數據類型和字段名,也就是說MODIFY是CHANGE的更具體化的一個操作。可能覺得用CHANGE只改變一個數據類型不太爽,就增加了一個能直接改數據類型的使用關鍵字MODIFY來操作。

3.5、添加字段

格式:ALTER TABLE表名稱 ADD新字段名數據類型[約束條件][FIRST|AFTER已存在的表名]

解釋:在一個特定位置增加一個新的字段,如果不指定位置,默認是最后一個。

ALTER TABLE student ADD sex VARCHAR(11);

3.6、刪除字段

格式:ALTER TABLE表名稱 DROP字段名;

ALTER TABLE student DROP sex;

3.7、刪除表的外鍵約束

格式:ALTER TABLE表名稱 DROP FOREIGN KEY外鍵約束名

注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們在創建外鍵約束關系時取的名字。

3.8、更改表的存儲引擎

格式:ALTER TABLE表名 ENGINE=更改后的存儲引擎名

這個存儲引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點就不清楚了,所以打算留到日后在說。

4、刪除表

4.1、刪除無關聯表

格式:DROP TABLE表名;

ALTER TABLE student;

4.2、刪除被其他表關聯的主表

這個是比較重要的一點,在有外鍵關聯關系的兩張表中,如果刪除主表,那么是刪不掉的,并且會報錯。因為有張表依賴于他。那怎么辦呢?針對這種情況,總共有兩種方法

1、先刪除你子表,然后在刪除父表,這樣就達到了刪除父表的目的,但是子表也要被刪除

2、先解除外鍵關系,然后在刪除父表,這樣也能達到目的,并且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關系。

MySql操作「數據查詢條件20211223

# SELECT 數據查詢(二)

## 對查詢結果排序 ORDER BY

ORDER BY 關鍵字主要用來將查詢結果中的數據按照一定的順序進行排序

1. 語法: - `order by 字段名 [asc|desc]`

- 說明 asc 按照升序排序【默認】, desc 按照降序排序

2. 注意:

- ORDER BY 關鍵字后可以跟子查詢 - 當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待

- 當排序的字段中存在空值時,ORDER BY 會將該空值作為最小值來對待查詢數據按字母升序進行排序(A Z),但數據的排序并不僅限于此,還可以使用 ORDER BY 中的 DESC 對查詢結果進行降序排序(Z A)。

## 條件查詢數據 WHERE

如果需要有條件的從數據表中查詢數據,可以使用 WHERE 關鍵字來指定查詢條件。

1. 語法 - `WHERE conditons`

- 帶比較運算符和邏輯運算符的查詢條件

- 帶 BETWEEN AND 關鍵字的查詢條件

- 帶 IS NULL 關鍵字的查詢條件

- 帶 IN 關鍵字的查詢條件 - 帶 LIKE 關鍵字的查詢條件

### 單條件查詢

### 多條件查詢

在 WHERE 關鍵詞后可以有多個查詢條件,這樣能夠使查詢結果更加精確。

多個查詢條件時用邏輯運算符 `AND()、OR(||)` 或 `XOR` 隔開。

1. AND :記錄 滿足所有條件,才會被查詢出結果

2. OR : 記錄 滿足任意一個查詢條件,才會被查詢出結果

3. XOR : 記錄 滿足其中一個條件,并且不滿足另外一個條件是,才會被查詢出結果

OR、AND 和 XOR 可以一起使用,但是在使用時要注意運算符的優先級。

### 模糊查詢 LIKE [新知識 4me]

1. 語法:

- `[NOT]LIKE`

- NOT :可選參數,字段中的內容與指定的字符串不匹配時滿足條件。

- 字符串:指定用來匹配的字符串。“字符串”可以是一個很完整的字符串,也可以包含通配符。

LIKE 關鍵字支持百分號` % `和下劃線` _ `通配符。

#### 帶有“%”通配符的查詢

“%”是 MySQL 中最常用的通配符,它能代表 **任何長度的字符串** ,字符串的長度可以為 0。

例如,a%b表示以字母 a 開頭,以字母 b 結尾的任意長度的字符串。該字符串可以代表 ab、acb、accb、accrb 等字符串。

注意:匹配的字符串必須加 *單引號* 或 *雙引號* 。

#### 帶有“_”通配符的查詢

“_”只能代表單個字符,字符的長度不能為 0。 例如,a_b可以代表 acb、adb、aub 等字符串。

#### LIKE 區分大小寫(默認不區分)

默認情況下,LIKE 關鍵字匹配字符的時候是 不 區分大小寫的。如果需要 可以加入`BINARY`關鍵字

#### 使用通配符的注意事項和技巧

1. 注意事項:

- 注意大小寫。MySQL 默認是不區分大小寫的。如果區分大小寫,像“Tom”這樣的數據就不能被“t%”所匹配到。

- 注意尾部的空格 尾部空格會干擾通配符的匹配。例如,“T% ”就不能匹配到“Tom”。

- 注意NULL。”%”通配符可以到匹配任意字符,但是不能匹配 NULL。也就是說 “%”匹配不到 tb_students_info 數據表中值為 NULL 的記錄。

2. 使用技巧:

- 不要過度使用通配符,如果其它操作符能達到相同的目的,應該使用其它操作符。因為 MySQL 對通配符的處理一般會比其他操作符花費更長的時間。

- 在確定使用通配符后,除非絕對有必要,否則不要把它們用在字符串的開始處。把通配符置于搜索模式的開始處,搜索起來是最慢的。

- 仔細注意通配符的位置。如果放錯地方,可能不會返回想要的數據。 ** *拓展* ** 如果查詢內容中包含通配符,可以使用“”轉義符。

*** 2021-12-23 今天先學到這里 明天繼續 MySql 的查詢 學習

MySQL(DML數據操作語言,添加/刪除/修改數據庫數據)

插入數據

insert into 表名(字段) values(‘數據’);

insert into 表名1(name,age) select name,age from 表2; #表2 數據信息復制到表1

修改數據

update 表名 set '字段'='數據';??? #修改數據

delect from 表名 where 字段=值;?? #刪除數據

truncate table 表名;?????????? #清空所有數據 且無法恢復

DQL (數據查詢語言,用來查詢數據)

select 要查詢字段 from 表名 [where 滿足條件];

[group by 分組依據]

[order by 排序依據]

[limit 限定輸出結果]

select * from 表名;???????? #查詢 表 所有數據

select 字段 字段 from 表名;????? #查詢指定字段數據

select st.name,st.age,th.name,th.age from st,th;??????????? #查詢一個或多個? 表中的數據

SELECT 字段名 FROM 表名 WHERE 條件1 OR 條件2 [...OR 條件n];

例:SELECT * FROM students WHERE age20 OR education!='大專'; #查詢年齡小于20或 者學歷不等于大專的學生信息

SELECT 字段名 FROM 表名 WHERE 條件1 AND 條件2 [...AND 條件n];

例:SELECT * FROM students WHERE age22 AND education='大專'; # 查詢年齡大于22 且學歷為大專的學生信息

select 字段 from 表名 where age in (12,17,23);????????????? #數據在指定 數據 里面

select 字段 from 表名 where age between 23 and 28;?????? #數據在23-28 之間

select * from 表名 order by 字段名;???????????????????? ?#排序,升序

select 字段 from 表名 order by desc;????????????????? ???? ?#?? 字段降序

select 字段1,字段2…… from 表名 group by? 分組依據字段;????????? #每個字段只顯示一條

例:SELECT id,sname,age,phone,place,GROUP_CONCAT(age,place) FROM students GROUP BY age,place; #查詢學生信息,根據age,place分組并顯示每一組的記 錄

select? distinct? 字段 from? 表名;????????????????????????? #去除結果重復行

例:SELECT DISTINCT age FROM students; # 查詢學生的年齡段情況

selcet 字段1,字段2,group_concat(分組依賴字段名) from 表名 group by 分組依賴字段名;??? #查詢每個組中記錄數量,顯示出來(使用關鍵字GROUP BY與GROUP_CONCAT()函數一起使用,可以將每個組中的記錄數量都顯 示出來)

例:selcet id,sname,age,phone,GROUP_CONCAT(age) FROM students GROUP BY age; # 查詢學生id,姓名,年齡,電話,根據age分組并顯示每一組的記錄

SELECT 字段名 FROM 表名 [其他條件] LIMIT int,int; 參數1是開始讀取的第一條記錄的 編號,參數2是要查詢記錄的個數

例:SELECT * FROM students ORDER BY age LIMIT 0,5; # 查詢學生信息,根據age 排序從第0位開始顯示,只顯示5條

select?字段名?from?表名where字段名?regexp '匹配方式';

(^匹配以特定字符或 字符串開頭的記錄,

$匹配以特定字符或 字符串結尾的記錄

[^字符集 合]匹配除“字符集合”以 外的任意一個字符

S1|S2|S3匹配S1 S2 S3中 的任意一個字符串

字符串{N }匹配字符串出現N次

字符串 {M,N}匹配字符串出現至 少M次,最多N次)

聚合函數查詢

select?count(字段名)?from 表名;?????????? #對于除"*"以外的任何參數,返回所選擇集合中非NULL值的行的數目;對于參數“*”,返回選擇集 合中所有行的數據,包含NULL值的行

例:SELECT COUNT(*) FROM students;

select?sum(字段名) from 表名;????????? #表中某個字段取值的總和

select avg(字段名) from 表名;???????#表中某個字段取值的平均值

select max(字段名) from 表名;?????? ?#表中某個字段取值的最大值

select min(字段名) from 表名;??????? ?#表中某個字段取值的最小值

連接查詢

a.內連接:列出數據表中與連接條件相匹配的數據行,組合成新記錄【只有滿足條件的記錄才出現在查詢結 果】 內連接的最常見的例子是相等連接,也就是連接后的表中的某個字段與每個表中的都相同

select 字段名1,字段名2? from 表名1?inner join 表名2?where 連接條件;

例:select s.name,d.dname?from staff s inner join department d WHERE s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱

b.外連接:與內連接不同,外連接是指使用OUTER JOIN關鍵字將兩個表連接起來。外連接生成的結果集不僅 包含符合連接條件的行數據 ,而且還包含左表(左外連接時的表) 右表(右外連接時的表)或 兩邊連接表(全外連接時的表)中所有的數據行。

select?字段名稱?from 表名1 LEFT|RIGHT?join 表名2 on 表名1.字段名1 = 表名2.字段名2;

例:select?s.name,d.dname FROM staff s LEFT JOIN department d ON s.dpid = d.id; #連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果右表中沒有對應的 連接數據,會自動添加NULL值

例:SELECT s.name,d.dname FROM staff s RIGHT JOIN department d ON s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果左表中沒有對應 的連接數據,會自動添加NULL值

例:SELECT 字段名1,字段名2 FROM 表名1,表名2 WHERE 連接條件 AND 限制條件; 例:SELECT s.name,d.dname FROM staff s,department d WHERE s.dpid = d.id AND s.dpid1; # 查詢員工姓名和部門名稱,條件是員工表的dpid字段與部門表中的id字段相等,并且dpid大于1

合并查詢結果

select 字段名?from ?表名 UNION?select 字段名 ?from 表名;?? #關鍵字UNION是將所 有的查詢結果合并到一起,并且去除相同記錄

例:SELECT dpid FROM staff UNION SELECT id FROM department; # 查詢員工表dpid與部門表id,如果有重復數據,只顯示一次

select?字段名?drom 表名 UNION ALL?select 字段名from表名;?? #關鍵字UNION ALL 則只是簡單地將結果合并到一 起

例:SELECT dpid FROM staff UNION ALL SELECT id FROM department; # 查詢員工表dpid與部門表id,全部顯示

MySql操作「數據查詢」-20211222

# SELECT 數據查詢

## 基礎

顯示如何使用簡單的`select`語句查詢單個表中的數據 使用`SELECT`語句從表或視圖獲取數據。

表由行和列組成,如電子表格。 通常,我們只希望看到子集行,列的子集或兩者的組合。

SELECT語句的結果稱為結果集,它是行列表,每行由相同數量的列組成。

select 語法

SELECT語句由以下列表中所述的幾個子句組成:

1. SELECT 之后是逗號分隔列或星號(*)的列表,表示要返回所有列。

2. FROM 指定要查詢數據的表或視圖。

3. JOIN 根據某些連接條件從其他表中獲取數據。

4. WHER E過濾結果集中的行。

5. GROUP BY將一組行組合成小分組,并對每個小分組應用聚合函數。

6. HAVING 過濾器基于GROUP BY子句定義的小分組。

7. ORDER BY 指定用于排序的列的列表。

8. LIMIT 限制返回行的數量。

語句中的`SELECT`和`FROM`語句是必須的,其他部分是可選的。

`SELECT`語句允許通過在`SELECT`子句中指定逗號分隔列的列表來查詢表的部分數據

建議顯式獲取數據的列,原因如下:

1. 使用星號(*)可能會返回不使用的列的數據。 它在MySQL數據庫服務器和應用程序之間產生不必要的I/O磁盤和網絡流量。

2. 如果明確指定列,則結果集更可預測并且更易于管理。 想象一下,當您使用星號(*)并且有人通過添加更多列來更改表格數據時,將會得到一個與預期不同的結果集。

3. 使用星號(*)可能會將敏感信息暴露給未經授權的用戶

格式 `select 列篩選 form table where 行篩選`

還有一些有用的運算符可以在WHERE子句中使用來形成復雜的條件,例如:

BETWEEN 選擇在給定范圍之內的值。

LIKE 匹配基于模式匹配的值。

IN 指定值是否匹配列表中的任何值。

IS NULL 檢查該值是否為NULL。

## SELECT 子查詢

在一個查詢過程中 嵌套另一個查詢,子查詢的結果作為外部查詢的條件或者數據范圍來使用。

分為 3 類:

1. where 型

- `select展示列名 from 表名 where 列名 運算符[in...] (select 對應列名 from ...)`

- 這個列名 和 對應列名 應該做到類型相同

- 如果不加入運算符 也可使用IN 這些類似的符號 - `select 展示列名 from 表名 where 列名 in (select 對應列名 from ...)`

- ex:

`select 展示列名 from 表名 where 列名 ALL(select 對應列名 from ....)`;

比子查詢的值都大

`select 展示列名 from 表名 where 列名 ANY(select 對應列名 from ....);`

比子查詢的任意一個值大

2. from 型

- `select 展示列名 from 表名 inner join (select 列名 from ...) 臨時表名 on 條件;`

- 其中,select的子查詢所得的表 為臨時表,后跟臨時表名,可在條件判斷中指代

3. exist 型

- `select 展示列 from 表名 where exists (select 列名 from 表名 where 條件);`

- 將主查詢的結果帶入子查詢進行條件判斷和匹配,如果查詢出結果即保留。

## 去重 DISTINCT

SELECT 語句執行簡單的數據查詢時,返回的是所有匹配的記錄。`distinct` 實現查詢不重復的數據

**DISTINCT 關鍵字的主要作用就是對數據表中一個或多個字段重復的數據進行過濾,只返回其中的一條數據給用戶。**

使用 `DISTINCT` 關鍵字時需要注意以下幾點:

- `DISTINCT` 關鍵字只能在 `SELECT` 語句中使用。

- 在對一個或多個字段去重時,`DISTINCT` 關鍵字必須在所有字段的最前面。

- 如果 `DISTINCT` 關鍵字后有多個字段,則會對多個字段進行組合去重,也就是說,只有多個字段組合起來完全是一樣的情況下才會被去重。

## 指定別名 AS

### 1. 為表指定別名

1. 當表名很長的時候 或者 執行了一些特殊的查詢的時候,為方便操作,可以為表指定一個別名,用以替代原來的名稱

2. 語法.

3. `表名 as 別名` - 含義: - `表名` : 數據庫中存儲的數據表名稱。

- `別名` : 查詢的時候指定的新的名稱。

- `as` : 此關鍵字 可以 省略,省略之后要將 `表名`與`別名`用 `空格` 分開

** *注意:表的別名不能與該數據庫的其它表同名。字段的別名不能與該表的其它字段同名。在條件表達式中不能使用字段的別名,否則會出現“ERROR 1054 (42S22): Unknown column”這樣的錯誤提示信息。* **

*** ex1:

***

### 2. 為字段指定別名

1. 在使用 SELECT 語句查詢數據時,MySQL 會顯示每個 SELECT 后面指定輸出的字段。有時為了顯示結果更加直觀,我們可以為字段指定一個別名。

2. 語法:

3. `字段名 [AS] 別名`

- 含義:

- `字段名`:為數據表中字段定義的名稱。

- `字段別名`:字段新的名稱。

- `AS` 關鍵字可以省略,省略后需要將字段名和別名用空格隔開

** *注意:表別名只在執行查詢時使用,并不在返回結果中顯示。而字段定義別名之后,會返回給客戶端顯示,顯示的字段為字段的別名* ** ***

ex2:

***

## 限制查詢條數 LIMIT

1. LIMIT 關鍵字有 3 種使用方式,即

- `指定初始位置`、

- `不指定初始位置`

- `OFFSET 組合`使用

(。。。。。 我之前一直不知道, 只會使用 `limit 200`。。。。。)

### 指定初始位置

1. 語法

- `LIMIT 初始位置,記錄數`

- 初始位置”表示從哪條記錄開始顯示;第一條記錄的位置是 0,第二條記錄的位置是 1。后面的記錄依次類推。

- “記錄數”表示顯示記錄的條數。

- *LIMIT 后的兩個參數必須都是正整數。

* ex:tb_students_info 表中,使用 LIMIT 子句返回從第 4 條記錄開始的行數為 5 的記錄,SQL 語句和運行結果如下。

### 不指定初始位置

記錄從第一條記錄開始顯示。顯示記錄的條數由 LIMIT 關鍵字指定。

1. 語法

- `LIMIT 5`

- `SELECT * FROM tb_students_info LIMIT 15;`

### LIMIT 和 OFFSET 組合使用

1. 語法

- `LIMIT 記錄數 OFFSET 初始位置`

- 參數和 LIMIT 語法中參數含義相同,“初始位置”指定從哪條記錄開始顯示;“記錄數”表示顯示記錄的條數。

該語句返回的是從第 4 條記錄開始的之后的 5 條記錄。即“ LIMIT 5 OFFSET 3 ”意思是獲取從第 4 條記錄開始的后面的 5 條記錄,和“ LIMIT 3 , 5 ”返回的結果相同。

*** 2021-12-22 今天先學到這里 明天繼續 MySql 的查詢 學習

新聞標題:mysql數據怎么操作,mysql簡單操作
網頁網址:http://vcdvsql.cn/article46/hsopeg.html

成都網站建設公司_創新互聯,為您提供品牌網站設計App開發網站設計網頁設計公司外貿網站建設網站維護

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設