MySQL

理論知識

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

1.修改表名

格式:Alter table 舊表名 rename [to] 新表名;

如下:Alter table tb_grade rename to grade;

2.修改字段名

格式:Alter table 表名 change 舊字段名 新字段名 新數(shù)據(jù)類型蚂蕴;

如下:Alter table grade change name username varchar(20);

3.修改字段的數(shù)據(jù)類型

格式: Alter table 表名 modify 字段名 數(shù)據(jù)類型;

如下:Alter table grade modify id int(20);

4.添加字段

? 格式:Alter table 表名 add 新字段名 數(shù)據(jù)類型

如下:Alter table grade add age int(10);

5.刪除字段

格式:Alter table 表名 drop 字段名敦间;

如下:Alter table grade drop age;

6.修改字段的排列位置

格式:Alter table 表名 modify 字段名 1 數(shù)據(jù)類型 first|after 字段名2

如下:Alter table grade modify username varchar(20) first;? //將username吞瞪,該為表的第一個字 ? ? ? ? ? ? 段

Alter table grade modify id int(20) after grade;//將id字段插入到grade字段后面

7.添加數(shù)據(jù)

格式:Insert into 表名(字段名1烦磁,字段名2芹缔,….)

values(值1坯癣,值2,……)最欠;

Create database school;

Use school;

Create table student(

id int(4),

name varchar(20) not null,

grade float

);

Insert into student(id,name,grade)values(1,’zhangsan’,98.5);

Insert into student(name,grade,id)values(’lisi’,95.5,2);

(2)為表的指定字段添加數(shù)據(jù)

Insert into 表名(字段1示罗,字段2,…)values(值1芝硬,值2蚜点,…)

Insert into student(id,name)values(4,’zhaoliu’);

Insert into student(id,grade)values(5,97);//name字段沒有指定默認值,并且添加了非null約束拌阴。

(3)同時添加多條記錄

Insert into 表名[(字段名1禽额,字段名2,…)]

values(值1皮官,值2脯倒,…),(值1捺氢,值2藻丢,…),…

Insert into student values

(6,’lilei’,99),

(7,’hanmeimei’,100),

(8,’lihua’,50);

//如果指定字段摄乒,則可以只為指定字段添加值

8.更新數(shù)據(jù)

Update 表名

set 字段名1=值1[悠反,字段名2=值2,…]

[where 條件表達式]

Update student set name=‘laozhang’,grade=50 where id = 1;

更新全部數(shù)據(jù)

如:Update student set grade = 80;

9.刪除數(shù)據(jù)

1.Delete刪除部分數(shù)據(jù)

刪除部分數(shù)據(jù)是指根據(jù)指定條件刪除表中的某一條或者某幾條記錄馍佑,需要使用where子句來指定刪除記錄的條件斋否。

Insert into student values(11,’xiaowang’,80);

Select * from student where id = 11;

Delete from student where id = 11;

Delete from student where id > 5;

2.Delete刪除全部數(shù)據(jù)

在delete語句中如果沒有使用where子句,則會將表中的所有記錄都刪除

Select * from student;

Delete from student;

二 單表查詢

1.在select語句中指定所有字段

Select 字段1拭荤,字段2茵臭,…from 表名

Create table student2(

id int(3) primary key auto_increment,

name varchar(20) not null,

grade float,

gender char(2)

); //插入一些數(shù)據(jù)

Select id,name,grade,gender from student2;

2.在select語句中使用星號(“*”)通配符代表所有字段

Select * from 表名;

Select * from student2

2.按條件查詢

查詢student2表中id為4的學生姓名:

Select? id,name from student2 where id = 4;

(1.)帶in關鍵字

查詢student表中id值為1舅世、2旦委、3的記錄:

Select * from student2 where id in (1,2,3);

查詢student表中id值不為1、2雏亚、3的記錄:

Select * from student2 where id not in (1,2,3);

(2)帶between and 關鍵字的查詢

查詢student表中id值在2~5之間的學生姓名

select * from student where id between 2 and 5;

(3)空值查詢

查詢student2表中gender為空值的記錄

Select * from student where gender is null缨硝;

查詢student2表中gender不為空值的記錄

Select * from student where gender is not null;

(4)帶distinct關鍵字的查詢

查詢student2表中gender字段的值罢低,要求不能出現(xiàn)重復數(shù)據(jù):

Select distinct gender from student2查辩;

(5)帶like關鍵字的查詢

1.百分號(%)通配符

匹配任意長度的字符串,包括空字符串。

查找student表中name字段以字符“z”開頭的學生id:

Select id,name from student2 where name like ‘z%’;

查找student表中name字段以字符“z”開頭宜岛,以“n”結尾的學生id:

Select id,name from student2 where name like ‘z%n’;

查找student表中name字段包含字符“y”的學生id:

Select id,name from student2 where name like ‘%y%’;

2.下劃線(_)通配符

查詢student2表中name字段值以字符串“zhan”開始匀钧,以字符串“san”結束,并且兩個字符串之間只有一個字符的記錄:

Select * from student2 where name like ‘zhan_san’;

查詢student2表中name字段值包含8個字符谬返,并且以字符串“san”結束的記錄:

Select * from student2 where name like ‘_____san’;

注意:查詢student表中name字段值包括“%”的記錄:(\%)

select * from student where like ‘%\%%’

(6)帶and關鍵字的多條件查詢

查詢student2表中id字段值在1,2,3,4之中之斯,name字段值以字符串“san”結束,并且grade字段值小于80的記錄:

Select id,name,grade,gender from student2

where id in(1,2,3,4) and name like ‘%san’ and grade <80;

(7)帶or關鍵字的多條件查詢

查詢student2表中id字段值小于3遣铝,或者gender字段值為“女”的學生姓名:

Select id,name,gender from student2 where id<3 or gender=‘女’;

Or和and一起使用的情況

注意:and的優(yōu)先級高于or佑刷,因此當兩者在一起使用時,應該先運算and兩邊的條件酿炸,再運算or兩邊的條件

查詢student2表中gender字段值為“女”或者gender字段值為“男”瘫絮,并且grade字段值為100的學生姓名:

Select name,grade,gender from student2 where gender = ‘女’ or gender = ‘男’ and grade=100;

三 聚合函數(shù)

實際開發(fā)中,經(jīng)常需要對某些數(shù)據(jù)進行統(tǒng)計填硕,例如統(tǒng)計某個字段的最大值麦萤,最小值,平均值等扁眯,為此壮莹,MySql中提供了一些函數(shù)來實現(xiàn)這些功能。

1.count()函數(shù)

Count()函數(shù)用來統(tǒng)計記錄的條數(shù)

Select count(*) from 表名

2.sum()函數(shù)

Sum()是求和函數(shù)姻檀,用于求出表中某個字段所有值的總和

Select sum(字段名) from 表名命满;

3.avg()函數(shù)

Avg()函數(shù)用于求出某個字段所有值的平均值

Select avg(字段名) from 表名

4.max()函數(shù)

Max()函數(shù)是求最大值的函數(shù),用于求出某個字段的最大值

Select max(grade) from 表名绣版;

5.min()函數(shù)

Min()函數(shù)是求最小值的函數(shù)胶台,用于求出某個字段的最小值

Select min(grade) from 表名;

四 對查詢結果排序

從表中查詢出來的數(shù)據(jù)可能是無序的杂抽,或者其排列順序不是用戶期望的诈唬。為了使查詢結果滿足用戶的需求,可以使用order by對查詢結果進行排序

Select 字段名1缩麸,字段名2铸磅,… from 表名 order by 字段名1, [asc|desc],字段名2 [asc|desc]…

1.查出student2表中的所有記錄匙睹,并按照grade字段進行排序

2.查出student2表中的所有記錄愚屁,使用參數(shù)asc按照grade字段升序排列

3.查出student2表中的所有記錄,使用參數(shù)desc按照grade字段降序排列

4.查出student2表中的所有記錄痕檬,按照gender字段的升序和grade字段的降序進行排列

五 分組查詢

在對表中數(shù)據(jù)進行統(tǒng)計時,也可能需要按照一定的類別進行統(tǒng)計送浊。在mysql中可以使用group by按某個字段或者多個字段中的值進行分組梦谜,字段中值相同的為一組:

Select 字段名1,字段名2,…from 表名

group by字段名1唁桩,字段名2闭树,..[having 條件表達式]

1.單獨使用group by分組

Select * from student2 group by gender;

每個分組只返回一條結果

2.group by和聚合函數(shù)一起使用

Group by和聚合函數(shù)一起使用荒澡,可以統(tǒng)計出某個或者某些字段在一個分組中最大值报辱、最小值、平均值等

將student2表按照gender字段值進行分組查詢单山,計算出每個分組中各有多少名學生:

Select count(*) ,gender from student2 group by gender碍现;

3.group by和having關鍵字一起使用

Having關鍵字和where關鍵字的作用相同,都用于設置條件表達式對查詢結果進行過濾米奸,兩者的區(qū)別在于丈咐,having關鍵字后可以跟聚合函數(shù)赶诊,而where不能,通常情況下having關鍵字都和group by 一起使用,用于對分組后的結果進行過濾锯蛀。

將student2表按照gender字段進行分組查詢,查詢出grade字段值之和小于300的分組:

Select sum(grade),gender from student2 group by gender having sum(grade)<300;i

六 使用limit限制查詢結果的數(shù)量

查詢student2表的前4條記錄:

Select * from student2 limit 4;

七 為表和字段取別名

1.為表取別名

為student2表起一個別名瓷胧,并查詢student2表中gender字段值為“女”的記錄

Select * from student2 as s2 where s2.gender=‘女’;

2.為字段取別名

查詢student2表中的所有記錄的name和gender字段值衡蚂,并為這兩個字段起別名為stu_name和stu_gender:

Select name as stu_name,gender as stu_gender from student2;

具體實踐

2、創(chuàng)建如下表


a )插入數(shù)據(jù)棕硫,使表內容如下所示


b)修改李四的SERVLET為65者吁、JSP為73


c)查詢并顯示ID、USERNAME這兩個字段的值


d)將c的結果用下圖所示別名顯示


e)查詢并以如下結果顯示


f)查詢并顯示每個學生的SERVLET和JSP的總成績


g)查詢并顯示不重復的ADDRESS字段的值


h)查詢ID為2且姓名為李四的學生


i)查詢ID為2饲帅,或者姓名為張三的學生


J) 查詢SERVLET成績大于70分的學生复凳,并顯示所有字段信息


K)查詢SERVLET 成績大于60分小于80分的學生,并顯示所有字段信息


L)查詢姓名不等于張三的記錄灶泵,并顯示所有字段信息


M)查詢ADDRESS為空的記錄育八,并顯示所有字段信息


N)查詢ADDRESS不為空的記錄,并顯示所有字段信息


O)查詢李姓學生的所有信息


P)查詢所有學生SERVLET總成績


Q)查詢所有學生SERVLET的平均分


R)查詢SERVLET的最高分和最低分



S)查詢前兩條記錄


T)將表按SERVLET由大到小顯示


U)將表按JSP小到大顯示


V)查詢每個地區(qū)的人數(shù)


W)查詢分組后區(qū)域人數(shù)超過1個人的區(qū)域


x)查詢id是1,2,3的記錄


X???3x?t???

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末赦邻,一起剝皮案震驚了整個濱河市髓棋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惶洲,老刑警劉巖按声,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異恬吕,居然都是意外死亡签则,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門铐料,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渐裂,“玉大人豺旬,你說我怎么就攤上這事∑饬梗” “怎么了族阅?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長膝捞。 經(jīng)常有香客問我坦刀,道長,這世上最難降的妖魔是什么蔬咬? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任鲤遥,我火速辦了婚禮,結果婚禮上计盒,老公的妹妹穿的比我還像新娘渴频。我一直安慰自己,他們只是感情好北启,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布卜朗。 她就那樣靜靜地躺著,像睡著了一般咕村。 火紅的嫁衣襯著肌膚如雪场钉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天懈涛,我揣著相機與錄音逛万,去河邊找鬼。 笑死批钠,一個胖子當著我的面吹牛宇植,可吹牛的內容都是我干的。 我是一名探鬼主播埋心,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼指郁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拷呆?” 一聲冷哼從身側響起闲坎,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茬斧,沒想到半個月后腰懂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡项秉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年绣溜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伙狐。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡涮毫,死狀恐怖瞬欧,靈堂內的尸體忽然破棺而出贷屎,到底是詐尸還是另有隱情罢防,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布唉侄,位于F島的核電站咒吐,受9級特大地震影響,放射性物質發(fā)生泄漏属划。R本人自食惡果不足惜恬叹,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望同眯。 院中可真熱鬧绽昼,春花似錦、人聲如沸须蜗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽明肮。三九已至菱农,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柿估,已是汗流浹背循未。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秫舌,地道東北人的妖。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像足陨,于是被迫代替她去往敵國和親嫂粟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容

  • 1.1钠右、常用數(shù)據(jù)庫包括:Oracle赋元、MySQL、SQLServer飒房、DB2搁凸、SyBase等 1.2、Navica...
    NOX_5d2b閱讀 3,378評論 0 0
  • 2.2 什么是數(shù)據(jù)庫軟件 數(shù)據(jù)庫狠毯,俗稱數(shù)據(jù)的倉庫护糖。方便管理數(shù)據(jù)的軟件(或程序)。 2.4 MySQL入門 1)到m...
    yangliangliang閱讀 403評論 0 0
  • 轉自:http://www.lai18.com/content/7451585.html 基本操作 查看數(shù)據(jù)庫 指...
    光光李閱讀 925評論 0 5
  • 數(shù)據(jù)庫簡介關系型數(shù)據(jù)庫MySQL安裝和使用SQL語言 一嚼松、數(shù)據(jù)庫簡介 (一)數(shù)據(jù)庫的發(fā)展 文件系統(tǒng):磁盤文件存儲數(shù)...
    哈嘍別樣閱讀 441評論 0 1
  • 那天我有點累。 一起打零時工的一個同事在我進洗手間之際翻我的包寝受,后被我抓住坷牛,問起原因,他說很澄,我的包就那么開著京闰,他也...
    Twist_of8閱讀 239評論 1 1