SQL語言

一彤避、使用SQL對數(shù)據(jù)庫操作

1.1 連接數(shù)據(jù)庫

  • 打開cmd窗口摆碉,使用命令,連接mysql數(shù)據(jù)庫
  • 命令:mysql -u root -p 密碼

1.2 創(chuàng)建數(shù)據(jù)庫

  • 語句:create database 數(shù)據(jù)庫的名稱;
  • 示例:create database testdb1;

1.3 查看所有的數(shù)據(jù)庫

  • 語句:show databases;

1.4 刪除數(shù)據(jù)庫

  • 語句:drop database 要刪除的數(shù)據(jù)庫的名稱;
  • 示例:drop database testdb1;

1.5 切換數(shù)據(jù)庫

  • 如果想要創(chuàng)建一個數(shù)據(jù)庫表伞矩,這個表要在一個數(shù)據(jù)庫里面瓢阴,所以需要切換到數(shù)據(jù)庫
  • 語句:use 要切換的數(shù)據(jù)庫的名稱;
  • 示例:use testdb2;

1.6 查看當(dāng)前使用的數(shù)據(jù)庫

  • 語句:select database()

二、使用SQL對數(shù)據(jù)庫表操作

2.1 創(chuàng)建數(shù)據(jù)庫表

語句:
create table 表名稱 (
字段 類型(長度),
字段 類型(長度)
);

//示例:創(chuàng)建表 user垒拢,字段  id  username  password  sex
create table user (
 id int,
 username varchar(40),
 password varchar(40),
 sex varchar(30)
)

創(chuàng)建帶約束的表

create table person (
id int primary key ,
username varchar(40) not null,
sex varchar(20)
)

2.2 查看表結(jié)構(gòu)

desc 表名稱;

2.3 刪除表

drop table 要刪除的表名稱;

2.4 查看當(dāng)前的數(shù)據(jù)庫的表

show tables;(查詢數(shù)據(jù)庫中一共有多少個表)

三旬迹、操作表中的記錄

3.1 添加記錄 insert

語句:insert into 要添加的表名稱 values(要添加的值);
示例:insert into user values(1,'aaa','123456','nan');
注意:當(dāng)添加的字段的數(shù)據(jù)類型是int類型,直接寫值求类,如果添加的字段的類型是varchar類型和日期類型奔垦,使用單引號把值包起來

3.2 修改記錄 update

語句:update 表名稱 set 要修改的字段的名稱1=修改的值2,要修改的字段的名稱2=修改的值2 where 條件
示例:update user set username='aaa',password='999' where id=1;

3.3 刪除記錄 delete

語句:delete from 表名稱 where 條件
示例:delete from user where id=1;
注意:不添加where條件,把表里面的所有的記錄都刪除

3.4 查詢記錄 select

語句:select 要查詢的字段的名稱 (*) from 表名稱 where 條件
示例:select * from user;(查詢表里的數(shù)據(jù))
select username,chinese from user;(可以查詢多個字段)
select * from user where id=2;
注意:as關(guān)鍵字可以給字段起一個別名仑嗅。
select username as u1,chinese as c1 from user;

3.5 去除重復(fù)記錄 distinct

語句 select distinct * from 表名;

3.6 運算符 < > >= <=

select * from student where english > 60;
in:在范圍內(nèi)
練習(xí):查詢表里面英語成績是80-100的學(xué)生信息
select * from student where english in (80,90);(寫誰查誰)
and:在where里面如果有多個條件宴倍,表示多個條件同時滿足
練習(xí):查詢表里面英語成績是70张症,并且數(shù)學(xué)成績是80的學(xué)生信息
select * from student where english=70 and math=80;
得到區(qū)間范圍的值
練習(xí):查詢表里面數(shù)學(xué)成績在80-100之間的值(兩種寫法)
寫法一,select * from student where math >=80 and math <=100;
寫法二鸵贬,select * from student where math between 80 and 100;
like:模糊查詢
練習(xí):查詢表里面name包含a的學(xué)生信息
select * from student where name like '%a%';
對查詢記錄排序 order by存儲
order by寫在select語句的最后
第一俗他,升序 order by 要排序字段 asc(asc可以省略,默認(rèn)的情況下就是升序)

  • 練習(xí):對student表里面查詢的數(shù)據(jù)阔逼,根據(jù)語文成績進行升序排列
    select * from student order by english asc;
    第二兆衅,降序 order by 要排序字段 desc
    練習(xí):對student表里面的英語成績進行降序排列
    select * from student order by english desc;

3.7 查看當(dāng)前運行的數(shù)據(jù)庫

select database();

3.8 聚集函數(shù)

使用提供的一些函數(shù),直接實現(xiàn)某些功能嗜浮。
count()函數(shù)

  • 根據(jù)查詢的結(jié)果羡亩,統(tǒng)計記錄數(shù)
    *代表所有字段
  • 寫法 select count(*) from ...where....
  • 查詢student表里面有多少條記錄
    select count(*) from student;
  • 查詢student表里面英語成績大于90的學(xué)生有多少
    select count(*) from student where english>90;
    sum()函數(shù)
  • 求和的函數(shù)
  • 寫法 select sum(要進行求和字段) from ...where....
    **得到student表里面的英語的總成績
    select sum(english) from student;
  • *得到student表里面英語總成績,數(shù)學(xué)的總成績
    select sum(english),sum(math) from student;
    *得到student表里面語文成績的平均分(總的成績/總的人數(shù))
    select sum(english)/count(
    ) from student;
    avg()函數(shù)
  • 計算的平均數(shù)的函數(shù)
  • 寫法 select avg(要計算平均數(shù)的字段名稱) from ...
  • 練習(xí):得到student表里面數(shù)學(xué)成績的平均分
    select avg(math) from student;
    max()函數(shù)
  • 計算最大值
  • 寫法 select max(字段) from...
  • 練習(xí):得到英語成績的最大值
    select max(english) from student;
    min()函數(shù)
  • 計算最小值
  • 寫法 select min(字段) from...
  • 練習(xí):得到user表里面英語成績的最小值
    select min(english) from student;
    分組操作
    分組使用 group by 根據(jù)分組的字段
    語法:group by + 要分組的字段
    在分組的基礎(chǔ)之上再進行條件的判斷 hav4ing危融,后面可以寫聚集函數(shù)畏铆。

四、mysql關(guān)鍵字limit

(1)limit關(guān)鍵字查詢表中的某幾條記錄
(2)limit關(guān)鍵字不是標(biāo)準(zhǔn)sql的關(guān)鍵字吉殃,只能在mysql數(shù)據(jù)庫里面使用辞居,實現(xiàn)分頁的功能。

  • 在oracle里面特有關(guān)鍵字 rownum
  • 在sqlserver里面特有關(guān)鍵字 top
    (3)使用limit查詢前幾條記錄
  • 寫法: limit 前幾條記錄 limit 3
    查詢orders表里面前三條記錄
    select * from orders limit 3;
    select * from orders limit 0,3;

(4)使用limit查詢第幾條到第幾條記錄

  • 寫法: limit 第一個參數(shù),第二個參數(shù)(不包括第一個參數(shù))
    ** 第一個參數(shù)開始的記錄數(shù)的位置蛋勺,從0開始的
    ** 第二個參數(shù)從開始的位置向后獲取幾條記錄
  • 練習(xí):查詢orders表里面第二條到第四條記錄
    select * from orders limit 1,3;

五瓦灶、mysql的數(shù)據(jù)類型

5.1 字符串型

VARCHAR、CHAR
當(dāng)創(chuàng)建表時候抱完,使用字符串類型贼陶,name varchar(40),指定數(shù)據(jù)的長度
varchar和char的區(qū)別:
varchar的長度是可變的巧娱,比如 name varchar(5)碉怔,存值 a ,直接把a存進去
char的長度是固定的家卖,比如name char(5)庙楚,存值 b上荡,把b存進去馒闷,后面加很多空格

5.2 大數(shù)據(jù)類型

BLOB(存音頻酪捡,視頻,圖片等)逛薇、TEXT(存字符類型,文本文件)

  • 使用這個類型可以存儲文件疏虫,一般開發(fā)永罚,不會直接把文件存到數(shù)據(jù)庫里面啤呼,存文件的路徑

5.3 數(shù)值型

mysql中 TINYINT SMALLINT INT BIGINT FLOAT DOUBLE
Java中 byte short int long float double

5.4 邏輯性

BIT 占1位,1字節(jié)占8位

  • 類似java里面的boolean

5.5 日期型

DATE:用于表示日期 1945-08-15
TIME:用于表示時間 19:10:40
下面的兩個類型可以表示日期和時間
DATETIME:手動添加時間到數(shù)據(jù)表里面
TIMESTAMP:自動把時間添加到表里面

六呢袱、MySQL的約束

6.1 非空約束 not null

  • 表示數(shù)據(jù)不能為空

6.2 唯一性約束 unique

  • 表中的記錄不能重復(fù)的

6.3 主鍵約束 primary key

  • 表示非空,唯一性
  • 后面自動增長 auto_increment
    一旦字段設(shè)置為主鍵羞福,那么該字段就是非空并且唯一
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惕蹄,一起剝皮案震驚了整個濱河市治专,隨后出現(xiàn)的幾起案子卖陵,更是在濱河造成了極大的恐慌,老刑警劉巖张峰,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泪蔫,死亡現(xiàn)場離奇詭異,居然都是意外死亡喘批,警方通過查閱死者的電腦和手機鸥滨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤祖,“玉大人,你說我怎么就攤上這事粥喜。” “怎么了额湘?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵卿吐,是天一觀的道長锋华。 經(jīng)常有香客問我嗡官,道長毯焕,這世上最難降的妖魔是什么衍腥? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任纳猫,我火速辦了婚禮婆咸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芜辕。我一直安慰自己,他們只是感情好侵续,可當(dāng)我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布憨闰。 她就那樣靜靜地躺著,像睡著了一般需五。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上警儒,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音蜀铲,去河邊找鬼边琉。 笑死记劝,一個胖子當(dāng)著我的面吹牛变姨,可吹牛的內(nèi)容都是我干的厌丑。 我是一名探鬼主播定欧,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼怒竿,長吁一口氣:“原來是場噩夢啊……” “哼砍鸠!你這毒婦竟也來了耕驰?” 一聲冷哼從身側(cè)響起爷辱,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤朦肘,失蹤者是張志新(化名)和其女友劉穎饭弓,沒想到半個月后媒抠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弟断,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年阀趴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舍咖。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锉桑,靈堂內(nèi)的尸體忽然破棺而出窍株,到底是詐尸還是另有隱情民轴,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布后裸,位于F島的核電站瑰钮,受9級特大地震影響微驶,放射性物質(zhì)發(fā)生泄漏浪谴。R本人自食惡果不足惜因苹,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一苟耻、第九天 我趴在偏房一處隱蔽的房頂上張望扶檐。 院中可真熱鬧凶杖,春花似錦、人聲如沸智蝠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至攘须,卻和暖如春毛秘,著一層夾襖步出監(jiān)牢的瞬間阻课,已是汗流浹背叫挟。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工限煞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抹恳,地道東北人署驻。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓奋献,卻偏偏與公主長得像旺上,于是被迫代替她去往敵國和親瓶蚂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容