成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql數(shù)據(jù)怎么操作,mysql簡單操作

在Intellij IDEA中如何操作MYSQL數(shù)據(jù)表

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

創(chuàng)新互聯(lián)建站主營武夷山網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),武夷山h5重慶小程序開發(fā)搭建,武夷山網(wǎng)站營銷推廣歡迎武夷山等地區(qū)企業(yè)咨詢

工具/材料

Intellij IDEA

01

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

02

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

03

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

04

然后在右側(cè)就會顯示此數(shù)據(jù)表的所有數(shù)據(jù),在這里可以對數(shù)據(jù)表的數(shù)據(jù)進行相應(yīng)的增刪改查,如下圖所示

05

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

06

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

07

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

08

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

09

然后在工作區(qū)就會展現(xiàn)出SQL編輯區(qū),我們就可以在里面輸入SQL語句進行數(shù)據(jù)表的操作,如下圖所示

mysql基本操作有哪些

mysql基本操作有:

命令行

1、顯示當(dāng)前數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)庫列表:mysql SHOW DATABASES;

2、建立數(shù)據(jù)庫:mysql CREATE DATABASE 庫名;

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

4、刪除數(shù)據(jù)庫:mysql DROP DATABASE 庫名;

5、刪除數(shù)據(jù)表:mysql DROP TABLE 表名;

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

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

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

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

10、導(dǎo)入.sql文件命令:mysql USE 數(shù)據(jù)庫名;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、創(chuàng)建數(shù)據(jù)庫

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

2、顯示所有的數(shù)據(jù)庫

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

3、刪除數(shù)據(jù)庫

命令:drop database 數(shù)據(jù)庫名 例如:刪除名為 xhkdb的數(shù)據(jù)庫mysql drop database xhkdb;

4、連接數(shù)據(jù)庫

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

5、當(dāng)前選擇(連接)的數(shù)據(jù)庫mysql select database();

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

三、表操作,操作之前應(yīng)連接某個數(shù)據(jù)庫

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、獲取表結(jié)構(gòu)

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

mysqlDESCRIBE MyClass

mysql desc MyClass;

mysql show columns from MyClass;

3、刪除表

命令:drop table 表名

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

4、插入數(shù)據(jù)

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

例如,往表 MyClass中插入二條記錄, 這二條記錄表示:編號為1的名為Tom的成績?yōu)?6.45, 編號為2 的名為Joan 的成績?yōu)?2.99,編號為3 的名為Wang 的成績?yōu)?6.5.

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

5、查詢表中的數(shù)據(jù)

1)、查詢所有行

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

例如:查看表 MyClass 中所有數(shù)據(jù) mysql select * from MyClass;

2)、查詢前幾行數(shù)據(jù)

例如:查看表 MyClass 中前2行數(shù)據(jù)

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

6、刪除表中數(shù)據(jù)

命令:delete from 表名 where 表達式

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

mysql delete from MyClass where id=1;

7、修改表中數(shù)據(jù):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;

更新字段內(nèi)容

update 表名 set 字段名 = 新內(nèi)容

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

MySQL數(shù)據(jù)庫基礎(chǔ)+ 數(shù)據(jù)庫的基本操作?

需要用的資料以鏈接的形式給需要的同學(xué)。

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

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

開始我的MySQL之旅吧 始于2016.12.04

--WH

一、數(shù)據(jù)庫的安裝

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

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

二、數(shù)據(jù)庫的基本操作

1、開啟mysql服務(wù)命令

net start mysql

2、進入mysql的兩種方式

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

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

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

前面四個數(shù)據(jù)庫是mysql中自帶的,也就是必須的.

SHOW DATABASES;

4、創(chuàng)建名為test_1的數(shù)據(jù)庫

格式:CREATE DATABASE 數(shù)據(jù)庫名

CREATE DATABASE test_1;

5、刪除名為test_1的數(shù)據(jù)庫

格式:DROP DATABASE 數(shù)據(jù)庫名

DROP DATABASE test_1;

總結(jié):學(xué)習(xí)了對數(shù)據(jù)庫的三個操作,1、查看所有數(shù)據(jù)庫 2、創(chuàng)建數(shù)據(jù)庫 3、刪除數(shù)據(jù)庫

三、數(shù)據(jù)表的基本操作

數(shù)據(jù)表和數(shù)據(jù)庫還有Mysql三者的關(guān)系

mysql中保存了很多數(shù)據(jù)庫、一個數(shù)據(jù)庫中可以保存很多表。

對數(shù)據(jù)表的增(創(chuàng)建表)刪(刪除表)改(修改表字段)查(查詢表結(jié)構(gòu))。 注意:這里的操作對象是表,對表的操作也就是表的結(jié)構(gòu),和表中的字段的操作(字段和記錄要分清楚)

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

USE test_1;

1、創(chuàng)建數(shù)據(jù)表

格式:CREATE TABLE 數(shù)據(jù)表名(

 字段名1數(shù)據(jù)類型[列級別約束條件],

 字段名2數(shù)據(jù)類型[列級別約束條件],

 字段名3數(shù)據(jù)類型[列級別約束條件]

 ); 

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

解釋:

1、[]中括號中的內(nèi)容表示可以有可以沒有,

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

3、約束條件后面會講到

1.1、創(chuàng)建沒有約束的student表

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

注釋:SHOW TABLES 查詢數(shù)據(jù)庫底下的所有表。

1.2、創(chuàng)建有約束的student表

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

1.2.1:主鍵約束

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

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

單字段主鍵約束

兩種方式都可以

CREATE TABLE student(CREATE TABLE student(

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

nameVARCHAR(12),nameVARCHAR(12),

ageINT(11) ageINT(11),

); PRIMARY KEY(id) );

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

這個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中的主鍵了(因為主鍵是唯一的,才能確實是哪個部門,進而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區(qū)分了。),像這樣的字段,就符合外鍵的特點,就可以使用外鍵約束,使該字段只能夠存儲另一張表的主鍵。如果不被外鍵約束,那么該字段就無法保證存儲進來的值就一定是另一張表的主鍵值。

外鍵約束的特點:

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

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

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

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

格式: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的外鍵關(guān)聯(lián)了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 指定這一列的默認值為多少,比如,男性同學(xué)比較多,性別就可以設(shè)置為默認男,如果插入一行記錄時,性別沒有填,那么就默認加上男 

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

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

2、查詢表結(jié)構(gòu)

2.1、查看表基本結(jié)構(gòu)語句

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

DESCRIBE student;

2.2、查看創(chuàng)建表的語句 

 格式:SHOW CREATE TABLE 表名

 SHOW CREATE TABLE student;

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

格式:SHOW CREATE TABLE 表名\G

SHOW CREATE TABLE student\G;

3、修改數(shù)據(jù)表

修改數(shù)據(jù)表包括:對表中字段的增加、刪除、修改。 在這個里面用的關(guān)鍵字為 ALTER

3.1、修改表名

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

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

ALTER TABLE student RENAME TO student1;

3.2、修改表中的字段名

格式:ALTER TABLE表名 CHANGE舊字段名新字段名新數(shù)據(jù)類型

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

ALTER TABLE student CHANGE name username VARCHAR(30);

3.3、修改表中的數(shù)據(jù)類型

格式:ALTER TABLE表名 MODIFY字段名數(shù)據(jù)類型 

ALTER TABLE student MODIFY username VARCHAR(20);

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

3.4、修改字段的排列位置

 方式1:ALTER TABLE表名 MODIFY字段1數(shù)據(jù)類型 FIRST|AFTER字段2

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

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

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

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

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

總結(jié)

CHANGE和MODIFY的區(qū)別?

原理都市一樣的,MODIFY只能修改數(shù)據(jù)類型,但是CHANGE能夠修改數(shù)據(jù)類型和字段名,也就是說MODIFY是CHANGE的更具體化的一個操作??赡苡X得用CHANGE只改變一個數(shù)據(jù)類型不太爽,就增加了一個能直接改數(shù)據(jù)類型的使用關(guān)鍵字MODIFY來操作。

3.5、添加字段

格式:ALTER TABLE表名稱 ADD新字段名數(shù)據(jù)類型[約束條件][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外鍵約束名

注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們在創(chuàng)建外鍵約束關(guān)系時取的名字。

3.8、更改表的存儲引擎

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

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

4、刪除表

4.1、刪除無關(guān)聯(lián)表

格式:DROP TABLE表名;

ALTER TABLE student;

4.2、刪除被其他表關(guān)聯(lián)的主表

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

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

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

MySql操作「數(shù)據(jù)查詢條件20211223

# SELECT 數(shù)據(jù)查詢(二)

## 對查詢結(jié)果排序 ORDER BY

ORDER BY 關(guān)鍵字主要用來將查詢結(jié)果中的數(shù)據(jù)按照一定的順序進行排序

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

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

2. 注意:

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

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

## 條件查詢數(shù)據(jù) WHERE

如果需要有條件的從數(shù)據(jù)表中查詢數(shù)據(jù),可以使用 WHERE 關(guān)鍵字來指定查詢條件。

1. 語法 - `WHERE conditons`

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

- 帶 BETWEEN AND 關(guān)鍵字的查詢條件

- 帶 IS NULL 關(guān)鍵字的查詢條件

- 帶 IN 關(guān)鍵字的查詢條件 - 帶 LIKE 關(guān)鍵字的查詢條件

### 單條件查詢

### 多條件查詢

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

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

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

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

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

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

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

1. 語法:

- `[NOT]LIKE`

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

- 字符串:指定用來匹配的字符串?!白址笨梢允且粋€很完整的字符串,也可以包含通配符。

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

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

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

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

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

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

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

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

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

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

1. 注意事項:

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

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

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

2. 使用技巧:

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

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

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

*** 2021-12-23 今天先學(xué)到這里 明天繼續(xù) MySql 的查詢 學(xué)習(xí)

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

插入數(shù)據(jù)

insert into 表名(字段) values(‘?dāng)?shù)據(jù)’);

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

修改數(shù)據(jù)

update 表名 set '字段'='數(shù)據(jù)';??? #修改數(shù)據(jù)

delect from 表名 where 字段=值;?? #刪除數(shù)據(jù)

truncate table 表名;?????????? #清空所有數(shù)據(jù) 且無法恢復(fù)

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

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

[group by 分組依據(jù)]

[order by 排序依據(jù)]

[limit 限定輸出結(jié)果]

select * from 表名;???????? #查詢 表 所有數(shù)據(jù)

select 字段 字段 from 表名;????? #查詢指定字段數(shù)據(jù)

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

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

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

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

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

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

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

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

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

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

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

select? distinct? 字段 from? 表名;????????????????????????? #去除結(jié)果重復(fù)行

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

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

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

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

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

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

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

$匹配以特定字符或 字符串結(jié)尾的記錄

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

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

字符串{N }匹配字符串出現(xiàn)N次

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

聚合函數(shù)查詢

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

例:SELECT COUNT(*) FROM students;

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

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

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

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

連接查詢

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

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.外連接:與內(nèi)連接不同,外連接是指使用OUTER JOIN關(guān)鍵字將兩個表連接起來。外連接生成的結(jié)果集不僅 包含符合連接條件的行數(shù)據(jù) ,而且還包含左表(左外連接時的表) 右表(右外連接時的表)或 兩邊連接表(全外連接時的表)中所有的數(shù)據(jù)行。

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字段,并查詢員工姓名和部門名稱,如果右表中沒有對應(yīng)的 連接數(shù)據(jù),會自動添加NULL值

例:SELECT s.name,d.dname FROM staff s RIGHT JOIN department d ON s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果左表中沒有對應(yīng) 的連接數(shù)據(jù),會自動添加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

合并查詢結(jié)果

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

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

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

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

MySql操作「數(shù)據(jù)查詢」-20211222

# SELECT 數(shù)據(jù)查詢

## 基礎(chǔ)

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

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

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

select 語法

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

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

2. FROM 指定要查詢數(shù)據(jù)的表或視圖。

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

4. WHER E過濾結(jié)果集中的行。

5. GROUP BY將一組行組合成小分組,并對每個小分組應(yīng)用聚合函數(shù)。

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

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

8. LIMIT 限制返回行的數(shù)量。

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

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

建議顯式獲取數(shù)據(jù)的列,原因如下:

1. 使用星號(*)可能會返回不使用的列的數(shù)據(jù)。 它在MySQL數(shù)據(jù)庫服務(wù)器和應(yīng)用程序之間產(chǎn)生不必要的I/O磁盤和網(wǎng)絡(luò)流量。

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

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

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

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

BETWEEN 選擇在給定范圍之內(nèi)的值。

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

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

IS NULL 檢查該值是否為NULL。

## SELECT 子查詢

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

分為 3 類:

1. where 型

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

- 這個列名 和 對應(yīng)列名 應(yīng)該做到類型相同

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

- ex:

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

比子查詢的值都大

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

比子查詢的任意一個值大

2. from 型

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

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

3. exist 型

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

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

## 去重 DISTINCT

SELECT 語句執(zhí)行簡單的數(shù)據(jù)查詢時,返回的是所有匹配的記錄。`distinct` 實現(xiàn)查詢不重復(fù)的數(shù)據(jù)

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

使用 `DISTINCT` 關(guān)鍵字時需要注意以下幾點:

- `DISTINCT` 關(guān)鍵字只能在 `SELECT` 語句中使用。

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

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

## 指定別名 AS

### 1. 為表指定別名

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

2. 語法.

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

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

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

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

*** ex1:

***

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

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

2. 語法:

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

- 含義:

- `字段名`:為數(shù)據(jù)表中字段定義的名稱。

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

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

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

ex2:

***

## 限制查詢條數(shù) LIMIT

1. LIMIT 關(guān)鍵字有 3 種使用方式,即

- `指定初始位置`、

- `不指定初始位置`

- `OFFSET 組合`使用

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

### 指定初始位置

1. 語法

- `LIMIT 初始位置,記錄數(shù)`

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

- “記錄數(shù)”表示顯示記錄的條數(shù)。

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

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

### 不指定初始位置

記錄從第一條記錄開始顯示。顯示記錄的條數(shù)由 LIMIT 關(guān)鍵字指定。

1. 語法

- `LIMIT 5`

- `SELECT * FROM tb_students_info LIMIT 15;`

### LIMIT 和 OFFSET 組合使用

1. 語法

- `LIMIT 記錄數(shù) OFFSET 初始位置`

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

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

*** 2021-12-22 今天先學(xué)到這里 明天繼續(xù) MySql 的查詢 學(xué)習(xí)

新聞標(biāo)題:mysql數(shù)據(jù)怎么操作,mysql簡單操作
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article46/hsopeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、App開發(fā)、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站維護

廣告

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

手機網(wǎng)站建設(shè)
寿光市| 孟连| 夏津县| 阿鲁科尔沁旗| 武威市| 六枝特区| 格尔木市| 咸丰县| 龙井市| 雅江县| 南涧| 夏河县| 五常市| 当涂县| 林西县| 林西县| 镇宁| 巧家县| 荣昌县| 揭阳市| 铜川市| 麻江县| 肇州县| 冕宁县| 竹溪县| 玉屏| 平顶山市| 炉霍县| 颍上县| 南部县| 如皋市| 乐昌市| 正阳县| 红河县| 嘉义市| 紫云| 永济市| 黑山县| 文水县| 义马市| 汤原县|