一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

MySQL的基礎(chǔ)語(yǔ)法

 靜幻堂 2019-12-20
學(xué)java的小亂 2019-12-18 16:49:37

MySQL

基礎(chǔ)語(yǔ)法

DDL定義

MySQL的基礎(chǔ)語(yǔ)法

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

CREATR DATABASE 數(shù)據(jù)庫(kù)名; --直接創(chuàng)建數(shù)據(jù)庫(kù)

CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫(kù)名; --判斷是否存在并創(chuàng)建

CREATE DATABASE 數(shù)據(jù)庫(kù)名 CHARACTER SET `GBK`; --創(chuàng)建指定格式數(shù)據(jù)庫(kù)

查看數(shù)據(jù)庫(kù)

SHOW DATABASES; --查看所有數(shù)據(jù)庫(kù)

SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名; --查看某個(gè)庫(kù)的定義信息

SELECT DATABASE(); -- 查看正在使用的數(shù)據(jù)庫(kù)

Use 數(shù)據(jù)庫(kù)名; -- 使用/切換數(shù)據(jù)庫(kù)

修改和刪除數(shù)據(jù)庫(kù)

ALTER DATABASE 數(shù)據(jù)庫(kù)名 DEFAULT CHARACTER SET 新字符集; --修改數(shù)據(jù)庫(kù)字符集

DROP DATABASE 數(shù)據(jù)庫(kù)名; --刪除數(shù)據(jù)庫(kù)

創(chuàng)建表

CREATE TABLE 表名(字段名 數(shù)據(jù)類(lèi)型,字段名 數(shù)據(jù)類(lèi)型); -- 創(chuàng)建表

CREATE TABLE 表名 LIKE 新表名; -- 快速創(chuàng)建愛(ài)你一個(gè)表結(jié)構(gòu)相同的表

查看表

SHOW TABLES; --查看數(shù)據(jù)庫(kù)中所有表

DESC 表名; -- 查看表結(jié)構(gòu)

SHOW CREATE TABLE 表名; --查看創(chuàng)建表的SQL語(yǔ)句

刪除表

DROP TABLE 表名; -- 直接刪除表

DROP TABLE IF EXISTS 表名; -- 判斷表是否存在并刪除表

修改表結(jié)構(gòu)

ALTER TABLE 表名 ADD 字段名 字段類(lèi)型; --添加列

ALTER TABLE 表名 MODIFY 字段名 新的類(lèi)型; --修改列類(lèi)型

ALTER TABLE 表名 CHANGE 老字段名 新字段名 類(lèi)型; --修改列名

ALTER TABLE 表名 DROP 字段名; --刪除列

RENAME TABLE 舊表名 TO新表名; --修改表名

ALTER TABLE 表名 DEFAULT CHARACTER SET 新字符集; --修改表的字符集

DML插入記錄

INSERT INTO 表名(字段名1,字段名2...) VALUES (字段值1,字段值2); --插入全部字段

省略寫(xiě)法: INSERT INTO 表名 VALUES (字段值1,字段值2);

沒(méi)有添加數(shù)據(jù)的字段可以使用NULL

插入多條數(shù)據(jù):

INSERT INTO 表名(字段名1,字段名2...) VALUES (字段值1,字段值2),(字段值1,字段值2)...;

DML更新表記錄

UPDATE 表名 SET 字段名=新的值; --不帶條件修改數(shù)據(jù)

UPDATE 表名 SET 字段名=新的值 WHERE 條件; --帶條件修改數(shù)據(jù)

DML刪除表記錄

DELETE FROM 表名 WHERE 字段名=值; --帶條件刪除數(shù)據(jù)

DELETE FROM 表名; --不帶條件刪除數(shù)據(jù),刪除所有數(shù)據(jù)

數(shù)據(jù)庫(kù)約束

PRIMARY KEY 主鍵約束 UNIQUE 唯一約束

NOT NULL 不為空

DEFAULT 默認(rèn)約束

FOREIGH KEY 外鍵約束

ALTER TABLE 表名 ADD PRIMARY KEY(字段名); --已有表添加主鍵

ALTER TABLE 表名 DROP PRIMARY KEY; --刪除主鍵

主鍵自增

AUTO_INCREMENT 主鍵自增(整數(shù)類(lèi)型自動(dòng)增長(zhǎng))

ALTER TABLE 表名 AUTO_INCREMENT=起始值; 修改自增起始值

DELETE和TRUNCATE/ 前者只刪除表中數(shù)據(jù),后者刪除數(shù)據(jù)的同時(shí),重置主鍵自增的值為1

蠕蟲(chóng)復(fù)制

CREATE TABLE 表2 LIKE 表1; --創(chuàng)建表2結(jié)構(gòu)和表1結(jié)構(gòu)一樣

INSERT INTO 表名2 SELECT * FROM 表名1; --表1的數(shù)據(jù)復(fù)制到表2

DQL查詢(xún)語(yǔ)句

語(yǔ)法格式:

SELECT 字段 FROM 表名 WHERE 條件;

比較運(yùn)算符

>`大于

`<`小于

`<=`小于等于

`>=`大于等于

`=`等于

`<>`、`!=`不等于

邏輯運(yùn)算符

AND(&&) 多個(gè)條件同時(shí)滿(mǎn)足

OR(||) 多個(gè)條件其中一個(gè)滿(mǎn)足

NOT(!) 不滿(mǎn)足

關(guān)鍵字in:

in() in里面每個(gè)數(shù)據(jù)都會(huì)作為一次條件,只要滿(mǎn)足的就會(huì)顯示

模糊查詢(xún)like

LIKE 像 像什么什么一樣

SELECT * FROM 表名 WHERE 字段名 LIKE ‘通配符字符串’;--滿(mǎn)足通配符字符串的數(shù)據(jù)就會(huì)顯示

MySQL通配符有兩個(gè):

%:表示任意多個(gè)字符

_:表示一個(gè)字符

DQL查詢(xún)語(yǔ)句-排序

關(guān)鍵字:

ORDER BY 字段名 [ASC|DESC]

ASC:升序 DESC:降序

單列排序:

使用字段數(shù)據(jù)排序

SELECT * FROM 表名 ORDER BY 字段名 DESC;

組合排序:

當(dāng)字段1數(shù)據(jù)有相同時(shí),再用字段2數(shù)據(jù)進(jìn)行排序

SELECT * FROM 表名 WHERE 條件 ORDER BY 字段名1 ASC, 字段名2 ASC;

DQL查詢(xún)語(yǔ)句-聚合函數(shù)

COUNT: 統(tǒng)計(jì)記錄數(shù),記錄為NULL的不統(tǒng)計(jì)

SUM: 計(jì)算指定列數(shù)值的和,如果不是數(shù)值類(lèi)型,那么結(jié)果為0

MAX: 計(jì)算指定列最大值

MIN: 計(jì)算指定列最小值

AVG: 計(jì)算指定列平均值

聚合函數(shù)的使用: 寫(xiě)在SQL語(yǔ)句SELECT后

SELECT 聚合函數(shù)(字段名) FROM 表名;

DQL查詢(xún)語(yǔ)句-分組

分組一般和聚合函數(shù)一起使用,單獨(dú)分組沒(méi)卵用

關(guān)鍵字: GROUP BY 將字段中相同值作為一組,返回第一條數(shù)據(jù)

SELECT * FROM 表名 GROUP BY 字段名;

SELECT * FROM 表名 WHERE 條件 GROUP BY 字段名;

DQL查詢(xún)語(yǔ)句-limit語(yǔ)句

LIMIT語(yǔ)句格式:

SELECT * FROM 表名 WHERE 條件 LIMIT offset, length;

offset 指偏移量,可以認(rèn)為是跳過(guò)的記錄數(shù)量,不寫(xiě)則默認(rèn)為0

length 指需要顯示的總記錄數(shù)

使用:

SELECT * FROM 表名 LIMIT offset,length;

外鍵約束

新建表時(shí)增加外鍵:

CREATE TABLE 表名(

字段名 字段類(lèi)型,

字段名 字段類(lèi)型,

-- 外鍵約束

[CONSTRAINT 外鍵約束名] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主鍵)

);

已有表時(shí)增加外鍵:

ALTER TABLE 從表 ADD [CONSTRAINT 外鍵約束名] FOREIGN KEY(外鍵字段名)

REFERENCES 主表(主鍵字段名);

刪除外鍵:

ALTER TABLE 表名 DROP FOREIGN KEY 外鍵約束名;

外鍵級(jí)聯(lián)操作

級(jí)聯(lián)更新: ON UPDATE CASCADE主表更新時(shí),從表跟著更新

級(jí)聯(lián)刪除: ON DELETE CASCADE 主表刪除時(shí),從表跟著刪除

內(nèi)連接

隱式內(nèi)連接:看不到JOIN關(guān)鍵字,條件使用WHERE指定

SELECT 字段 FROM 表1,表2 WHERE 條件;

顯式內(nèi)連接:使用INNER JOIN ... ON語(yǔ)句,可以省略INNER

SELECT 字段 FROM 左表 INNER JOIN 右表 ON 表連接條件 WHERE 查詢(xún)條件;

左外連接

SELECT 字段 FROM 左表 LEFT OUTER JOIN 右表 ON 表連接條件 WHERE 查詢(xún)條件;

子查詢(xún)

單行單列: 在WHELE 后面作為條件

SELECT 查詢(xún)字段FROM 表 WHERE 字段=(子查詢(xún));

多行單列: 在WHERE 后面作為條件

SELECT 查詢(xún)字段 FROM 表 WHERE 字段 IN (子查詢(xún));

多行多列: 在FROM后面作為表

SELECT 查詢(xún)字段FROM (子查詢(xún)) 表別名 WHERE 條件;

子查詢(xún)作為表需要取別名,否則這張表沒(méi)有名稱(chēng)無(wú)法訪問(wèn)表中的字段

事務(wù)

四大特性: 1.原子性 2.一致性 3.隔離性 4.持久性

START TRANSACTION; 開(kāi)啟事務(wù)

COMMIT; 提交事務(wù)

ROLLBACK; 回滾事務(wù)

每條SQL語(yǔ)句都是一個(gè)單獨(dú)的事務(wù),自開(kāi)自提,通過(guò)設(shè)置可以關(guān)閉自動(dòng)提交事務(wù)。

關(guān)閉自動(dòng)提交事務(wù): SET AUTOCOMMIT= 0; 0:OFF(關(guān)) 1:ON(開(kāi))

回滾點(diǎn)

設(shè)置回滾點(diǎn):

SAVEPONIT 回滾點(diǎn)名字;

回到回滾點(diǎn):

ROLLBACK TO 回滾點(diǎn);

JDBC訪問(wèn)數(shù)據(jù)庫(kù)步驟

1. Class.forName(“com.mysql.jdbc.driver”); --注冊(cè)驅(qū)動(dòng)

2. DriverManager.getConnection(“URL”, ”User”, “PassWord”); --連接數(shù)據(jù)庫(kù)

3. 調(diào)用 .createStatement() 獲取Statement對(duì)象執(zhí)行SQL語(yǔ)句

Statement對(duì)象的API介紹:

Boolean execute(String sql) --執(zhí)行任何SQL語(yǔ)句,如果是查詢(xún)語(yǔ)句返回true,不是返回false

Int executeUpdate(String sql) --用于執(zhí)行增刪改語(yǔ)句;返回影響的行數(shù)

ResultSet executeQuery(String sql) --執(zhí)行查詢(xún)語(yǔ)句;返回查詢(xún)到的結(jié)果集

JDBC實(shí)現(xiàn)對(duì)單表數(shù)據(jù)查詢(xún)

關(guān)鍵字ResultSet

調(diào)用next方法,ResultSet內(nèi)部指針回移動(dòng)到下一行數(shù)據(jù),有數(shù)據(jù)則返回true,無(wú)則false

調(diào)用getXXX(),方法獲取數(shù)據(jù):

參數(shù)是字符串則根據(jù)字段名獲取值; 參數(shù)是整數(shù)則通過(guò)字段序號(hào)獲取值

JDBC事務(wù)

Connection接口與事務(wù)有關(guān)的方法:

SQLException(false/ture); false:開(kāi)啟事務(wù) ture :關(guān)閉事務(wù)

commit(); 提交事務(wù)

rollback(); 回滾事務(wù)

PreparedSatement使用步驟

編寫(xiě)SQL語(yǔ)句,位置內(nèi)容使用?占位:

SELECT * FROM user WHERE name=? AND password=?; 參數(shù)化的SQL

設(shè)置參數(shù):

setXXX(第幾個(gè)?, ?的具體值);

用executeQuery() 、executeUpdate() 執(zhí)行SQL語(yǔ)句

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多

    91欧美日韩国产在线观看| 激情图日韩精品中文字幕| 亚洲午夜精品视频观看| av在线免费观看在线免费观看| 国产欧美日韩不卡在线视频| 日韩精品一区二区三区av在线| 日韩精品一区二区亚洲| 久久99这里只精品热在线| 国产成人av在线免播放观看av | 偷拍偷窥女厕一区二区视频| 亚洲国产婷婷六月丁香| 91国自产精品中文字幕亚洲| 亚洲永久一区二区三区在线| 国产一区二区不卡在线播放| 日韩精品一级一区二区| 丰满少妇被猛烈插入在线观看| 精品精品国产欧美在线| 日韩一区二区三区在线日| 国产毛片对白精品看片| 久热在线视频这里只有精品| 年轻女房东2中文字幕| 欧美精品二区中文乱码字幕高清| 国产熟女一区二区精品视频| 国产精品蜜桃久久一区二区| 国产一区二区三中文字幕| 91老熟妇嗷嗷叫太91| 伊人国产精选免费观看在线视频| 亚洲精品成人综合色在线| 国产乱人伦精品一区二区三区四区| 久久99精品日韩人妻| 一区二区三区日韩在线| 人妻久久一区二区三区精品99| 日韩一区二区三区在线欧洲| 91欧美一区二区三区| 视频一区二区黄色线观看| 精品人妻精品一区二区三区| 亚洲一区精品二人人爽久久| 日本一本在线免费福利| 日韩精品中文字幕在线视频| 国产老熟女乱子人伦视频| 九九久久精品久久久精品|