MySQL常規(guī)操作

作者使用的數據庫為是MySQL8, 圖形化工具--SQLyog<獲取pj版可留言>

1. DDL(Data Definition language)操作數據庫--主要用于創(chuàng)建數據庫蘸吓、數據表

1.1 創(chuàng)建數據庫轧粟、查詢數據庫

 # 創(chuàng)建數據庫
CREATE DATABASE db1;

# 判斷數據庫是否存在, 不存在就創(chuàng)建
CREATE DATABASE IF NOT EXISTS db2;

# 創(chuàng)建數據庫并指定字符集
CREATE DATABASE db3 DEFAULT CHARACTER SET utf8;

# 查詢數據庫
SHOW DATABASES ;
# 操作以后自行查詢即可

1.2 查看某個數據庫的定義信息

# 查看某個數據庫的定義信息
SHOW CREATE DATABASE db3;
SHOW CREATE DATABASE db1;

1.3 修改數據庫

# 修改數據庫默認的字符集【將原先設置的utf8字符集改為gbk笑窜,當然開發(fā)中使用的utf8】
ALTER DATABASE db3 CHARACTER SET gbk;

注意1.4的操作在開發(fā)中,千萬不要窗悯, 不要, 不要刪庫骡楼, 重要的事情說三遍

1.4 刪除數據庫

# 刪除數據庫
DROP DATABASE db2;

1.5 使用數據庫

# 查看目前所在的是哪個數據庫
SELECT DATABASE();

# 改變要使用的數據庫
USE db1;

2. DDL操作表結構--創(chuàng)建表操作

2.1 創(chuàng)建數據表的格式

CREATE TABLE table_name(
    字段1 字段類型1,
    字段2 字段類型2,
    ...
);

# 常見字段類型可以自行查閱措左, 因為官方出品必屬精品腌歉, 細節(jié)上個人絕對沒有集眾人之力做的好, 感謝

2.2 創(chuàng)建student表包含id齐苛,name翘盖,birthday等三個字段【這里我是在前面創(chuàng)建的db1數據庫中操作, 當然你可以自行創(chuàng)建一個屬于自己的】

# INT(整數) VARCHAR(字符串) DATE(日期)
CREATE TABLE student(
    id INT,
    NAME VARCHAR(32),
    birthday DATE
);

2.3 查看表

# 查看db1【db1可以換成任意數據庫】中的數據庫中的所有表
SHOW TABLES;

# 查看創(chuàng)建的表的結構
DESC student;

# 查看創(chuàng)建表的SQL語句
SHOW CREATE TABLE student;

2.4 快速創(chuàng)建一個表結構相同的表

# 創(chuàng)建new_student表, new_student表結構和student結構相同
CREATE TABLE new_student LIKE student;

2.5 刪除表

# 刪除新創(chuàng)建的new_student表
DROP TABLE new_student;

# 下面是另一種格式: 判斷表是否存在, 如果存在則刪除, 可以用已經刪除的new_student表進行測試
DROP TABLE IF EXISTS new_student;
【SQLyog控制臺輸出的信息如下: 共 0 行受到影響凹蜂, 1 個警告】

2.6 修改表結構: 增加馍驯、刪除阁危、修改

# 添加表列關鍵字: ALTER  ADD
# 在student表中添加學生的地址信息address
ALTER TABLE student ADD address VARCHAR(32);

# 修改列類型關鍵字:MODIFY 
# 將student表中的address列類型修改為int類型【這里是不合理的僅供測試使用】
ALTER TABLE student MODIFY address INT;

# 修改列名關鍵字: CHANGE
# 將address該字段修改為new_addr, 并且字段類型改為varchar
ALTER TABLE student CHANGE address new_addr VARCHAR(32);

# 刪除列關鍵字: DROP
# 刪除new_addr列
ALTER TABLE student DROP new_addr;

# 修改表名關鍵字: RENAME   TO
# 將student表名該為old_student
RENAME TABLE student TO old_student;

3. DML(Data Manipulation Language數據操縱語言)操作表中的數據【對表中的數據進行增刪改操作】

3.1 插入數據

# 格式: INSERT  [INTO] 表名 [字段名] VALUES(字段值);
# 三種插入的方式【字段名用k表示汰瘫, 字段值用v表示】
# 1. 插入全部字段
INSERT INTO table_name (k1, k2, k3....) VALUES(v1, v2, v3...);
# 2. 不寫字段
INSERT INTO table_name VALUES(v1, v2, v3...);
# 3. 插入部分數據
INSERT INTO table_name (k1, k2) VALUES(v1, v2);
# 注意: 沒有添加數據的字段會使用NULL

# 例子: 向student表中添加一個scott的成員
INSERT INTO student(id, NAME, birthday) VALUES(1, 'scott', '1981-01-02');
# 可以自行添加更多的數據狂打, 本次這里只是舉個例子
# 查詢student中的數據
SELECT * FROM student;

3.2 更新表的數據

# 格式: UPDATE 表名 SET 列名 = 值 [WHERE 條件表達式];
# 1. 不帶條件修改數據
UPDATE 表名 SET 字段名=值混弥;# 修改所有的行
# 2. 待條件修改數據
UPDATE 表名 SET 字段名 = 值 WHERE 字段名 = 值趴乡;# 待條件修改數據

# 例子: 將student中的scott學生的name字段改為gunner
UPDATE student SET NAME='gunner' WHERE id=1;

3.3 刪除表的數據【三思而后行啊】

# 格式:DELETE FROM 表名 [WHERE 條件表達式];
# 如果沒有指定WHERE子句, MySQL表中的所有記錄將被刪除【慎重】

4. DQL(Data Query Language數據查詢語句)查詢表中的數據

# 先創(chuàng)建一個擁有多條數據的表
# 創(chuàng)建的student蝗拿, 包含的字段由id, name, gender, math_score, english_score,
CREATE TABLE student(
    id INT, # 學生編號
    NAME VARCHAR(32), # 學生姓名
    gender INT, # 學生性別晾捏, 1表示男生, 0表示女孩
    math_score DOUBLE, # 數學成績哀托, 因為可能為"99.5"所以使用DOUBLE
    english_score DOUBLE# 英語成績
);

# 查詢student表是否創(chuàng)建成功
DESC student;

# 插入學生數據
INSERT INTO student(id, NAME, gender, math_score, english_score)
VALUES(1,'張三', 1, 90, 90.5);

# 查詢數據是否插入成功
SELECT * FROM student;

# 批量插入數據: 值得注意的是列與列要一一對應
INSERT INTO student
(id, NAME, gender, math_score, english_score) 
VALUES
(2, '李四', 0, 100, 100),
(3, '王五', 1, 60, 70.5), 
(4, '趙六', 1, 80, 88.5);

# 查詢現在student的數據有哪些【下面的SQL語句是最基礎的查詢結構】
SELECT * FROM student;

4.1 簡單查詢

# 1. 查詢指定列
# 格式: SELECT 字段1, 字段2... FROM 表名;
# 例子: 查詢id惦辛, name列的學生信息
SELECT id, NAME FROM student;

# 2. 指定列的別名進行查詢【作為國人有時候看咱們的漢語才是正道】
# 格式: SELECT 字段1 AS 別名1, 字段2 AS 別名2... FROM 表名;
# 例子: 查詢id別名為學生編號, name別名為學生姓名【別名不用加“ '' ”引號】
SELECT id AS 學生編號, NAME AS 學生姓名 FROM student;

# 3. 清除重復值
# 格式: SELECT DISTINCT 字段名 FROM 表名;
# 例子: 查詢學生的性別有哪些【1表示男仓手, 0表示女胖齐; 本次案例可能不是很適合這個場景, 你懂的】
SELECT DISTINCT gender FROM student;

4.2 稍微復雜一點

# 查詢結果參與運算【實際中可能會涉及到薪資嗽冒、工齡等數據】
# 格式1 : SELECT 列名1 + 固定值 FROM 表名呀伙;
# 例子1: 每個學生的數學成績加10分
SELECT math_score + 10 FROM student;
# 例子2: 例子1中的進行查詢的后字段名顯示的結果為 “math_score + 10”這樣很不好看, 這就是我們使用AS別名的時候到了
SELECT (math_score + 10) AS 數學最終成績 FROM student;

# 格式2: 某列數據和其他列數據參與運算
# 例子: 查詢學生總成績
SELECT id, NAME, (math_score + english_score) AS 總成績 FROM student; 

4.3 條件查詢

# 我們在進行數據查詢的時候辛慰, 都是需要查詢自己想要的數據区匠, 那么自己心中一定有對數據有一定的要求, 這個要求對于數據來說就是滿足的某種條件帅腌。例如: 我們要查詢數學成績大于80分的幾個同學姓名驰弄, 那么低于80分的就要給他過濾掉, 這就是條件查詢的意義所在速客!
# 關鍵字: WHERE
# 格式: SELECT 字段名 FROM 表名 WHERE 所需要的條件;
比較運算符 說明
>戚篙、<、<=溺职、>=岔擂、= 、<> <>在SQL中表示不等于, 在msyql中也可以使用!=, 但是沒有==
BETWEEN...AND 在一個范圍內, 比如: BETWEEN 80 AND 100相當于條件在80到100之間, 這是一個閉區(qū)間(也就是包括首尾的80和100算在其中)
IN() 集合表示多個值, 使用逗號將每個值分離, IN從英語上來說是在其中的意思, 只要滿足其中一個就會查詢出來
LIKE 模糊查詢, [本次案例不適合LIKE的講解, 在未來的更新中會再次講解]
IS NULL 查詢某一列為NULL的值, 注意: 不能寫成 = NULL [本次案例不適合IS NULL的講解, 在未來的更新中會再次講解]
# 例子1: 查詢數學成績大于80分的學生都有誰
SELECT NAME, math_score  # 第三步: 你想要顯示的信息是姓名和分數, 還是該學生的所有信息
FROM student # 第一步: 先確定是在哪個表中查詢
WHERE math_score > 80;   # 第二步: 查詢的條件是什么

# 例子2: 查詢英語成績在60分到90分之間的學生都有誰
SELECT NAME, english_score
FROM student
WHERE english_score BETWEEN 60 AND 90;

# 例子3: 查詢數學成績?yōu)?0或者80或者100的學生都有誰
SELECT NAME, math_score
FROM student
WHERE math_score IN(60, 80, 100);
邏輯運算符 說明
and 或 && 與, SQL中建議使用前者, 后者并不通用
or 或 ll
not 或 !
# 例子1: 查詢數學和英語成績都是100分的學生都有誰
SELECT NAME AS 姓名 , math_score AS 數學成績, english_score AS 英語成績
FROM student
WHERE math_score=100 AND english_score=100;

# 例子2: 查詢數學成績大于90[包括90]或者英語成績大于90[包括90]的學生都有誰
SELECT NAME AS 姓名 , math_score AS 數學成績, english_score AS 英語成績
FROM student
WHERE math_score >= 90 OR english_score >= 90;

# 查詢數學成績不合格的學生都有誰, [不合格的學生分數小于60[不包括60]]
SELECT NAME AS 姓名 , math_score AS 數學成績
FROM student
WHERE math_score < 60;
# 備注: 本人設置的每個學生都及格了, 畢竟大學時代最盼望的就是能夠及格?
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末浪耘,一起剝皮案震驚了整個濱河市乱灵,隨后出現的幾起案子,更是在濱河造成了極大的恐慌七冲,老刑警劉巖痛倚,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異澜躺,居然都是意外死亡蝉稳,警方通過查閱死者的電腦和手機抒蚜,發(fā)現死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耘戚,“玉大人嗡髓,你說我怎么就攤上這事∈战颍” “怎么了饿这?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長朋截。 經常有香客問我蛹稍,道長,這世上最難降的妖魔是什么部服? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任唆姐,我火速辦了婚禮,結果婚禮上廓八,老公的妹妹穿的比我還像新娘奉芦。我一直安慰自己,他們只是感情好剧蹂,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布声功。 她就那樣靜靜地躺著,像睡著了一般宠叼。 火紅的嫁衣襯著肌膚如雪先巴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天冒冬,我揣著相機與錄音伸蚯,去河邊找鬼。 笑死简烤,一個胖子當著我的面吹牛剂邮,可吹牛的內容都是我干的。 我是一名探鬼主播横侦,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挥萌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枉侧?” 一聲冷哼從身側響起引瀑,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榨馁,沒想到半個月后伤疙,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年徒像,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛙讥。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锯蛀,死狀恐怖,靈堂內的尸體忽然破棺而出次慢,到底是詐尸還是另有隱情旁涤,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布迫像,位于F島的核電站劈愚,受9級特大地震影響,放射性物質發(fā)生泄漏闻妓。R本人自食惡果不足惜菌羽,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望由缆。 院中可真熱鬧注祖,春花似錦、人聲如沸均唉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舔箭。三九已至罩缴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間层扶,已是汗流浹背箫章。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怒医,地道東北人炉抒。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像稚叹,于是被迫代替她去往敵國和親焰薄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內容

  • 一扒袖、增加用戶 1.遠程登錄用戶 格式:grant select on 數據庫.* to 用戶名@登錄主機 iden...
    白衣渡人_a063閱讀 216評論 0 0
  • 1塞茅、insert insert into 數據庫表名 values(value值1,value值2,..........
    Amanda_cq閱讀 306評論 0 0
  • 重返MySQL之MySQL基礎 本章詳細介紹了,什么是數據庫,常見的關系型數據庫有哪些季率,什么是MySQL野瘦,及MyS...
    淚夢紅塵BLOG閱讀 269評論 0 0
  • 數據庫對于后端開發(fā)來說是必不可少所要用到的,而MySQL數據庫是其中的主流之一,在中小型公司中使用的較為廣泛鞭光,作為...
    Steven_SHH閱讀 1,461評論 0 2
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月吏廉,有人笑有人哭,有人歡樂有人憂愁惰许,有人驚喜有人失落席覆,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,536評論 28 53