這篇文章主要介紹“MySQL結(jié)構(gòu)化查詢語(yǔ)言有哪些”,在日常操作中,相信很多人在MySQL結(jié)構(gòu)化查詢語(yǔ)言有哪些問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MySQL結(jié)構(gòu)化查詢語(yǔ)言有哪些”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、昌黎網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、昌黎網(wǎng)絡(luò)營(yíng)銷(xiāo)、昌黎企業(yè)策劃、昌黎品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供昌黎建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:jinyejixie.com
SQL的概述
Structured Query Language 結(jié)構(gòu)化查詢語(yǔ)言,是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。
各種主流的數(shù)據(jù)庫(kù)系統(tǒng)都對(duì)SQL規(guī)范作了某些編改和擴(kuò)充。所以,實(shí)際上不同數(shù)據(jù)庫(kù)系統(tǒng)之間的SQL不能完全相互通用,但大部分是相同的,后面我們學(xué)習(xí)的是MySQL的版本,掌握SQL主要語(yǔ)法之后,要遷移到其它數(shù)據(jù)庫(kù)也是比較容易的。
結(jié)構(gòu)化查詢語(yǔ)言包含6個(gè)部分:
一:數(shù)據(jù)查詢語(yǔ)言(DQL:Data Query Language):
其語(yǔ)句,也稱(chēng)為“數(shù)據(jù)檢索語(yǔ)句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動(dòng)詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類(lèi)型的SQL語(yǔ)句一起使用。
二:數(shù)據(jù)操作語(yǔ)言(DML:Data Manipulation Language):
其語(yǔ)句包括動(dòng)詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱(chēng)為動(dòng)作查詢語(yǔ)言。
三:事務(wù)處理語(yǔ)言(TPL):
它的語(yǔ)句能確保被DML語(yǔ)句影響的表的所有行及時(shí)得以更新。TPL語(yǔ)句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
四:數(shù)據(jù)控制語(yǔ)言(DCL):
它的語(yǔ)句通過(guò)GRANT或REVOKE獲得許可,確定單個(gè)用戶和用戶組對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)。某些RDBMS可用GRANT或REVOKE控制對(duì)表單個(gè)列的訪問(wèn)。
五:數(shù)據(jù)定義語(yǔ)言(DDL):
其語(yǔ)句包括動(dòng)詞CREATE和DROP。在數(shù)據(jù)庫(kù)中創(chuàng)建新表或刪除表(CREAT TABLE 或 DROP TABLE);為表加入索引等。DDL包括許多與人數(shù)據(jù)庫(kù)目錄中獲得數(shù)據(jù)有關(guān)的保留字。它也是動(dòng)作查詢的一部分。
六:指針控制語(yǔ)言(CCL):
它的語(yǔ)句,像DECLARE CURSOR,F(xiàn)ETCH INTO和UPDATE WHERE CURRENT用于對(duì)一個(gè)或多個(gè)表單獨(dú)行的操作。
本章我們主要介紹的是DDL和DML。
MySQL數(shù)據(jù)庫(kù)的操作
創(chuàng)建數(shù)據(jù)庫(kù)的基本語(yǔ)法是:
create database 數(shù)據(jù)庫(kù)名;
還可以給數(shù)據(jù)庫(kù)指定默認(rèn)的字符集以及排序規(guī)則:
create database 數(shù)據(jù)庫(kù)名
default character set 字符集 collate 排序規(guī)則;
選擇數(shù)據(jù)庫(kù)
use 數(shù)據(jù)庫(kù)名;
修改數(shù)據(jù)庫(kù)的字符集和排序規(guī)則:
alter database 數(shù)據(jù)庫(kù)名
default character set 字符集 collate 排序規(guī)則;
刪除數(shù)據(jù)庫(kù):
drop database 數(shù)據(jù)庫(kù)名;
刪除時(shí)檢查數(shù)據(jù)庫(kù)是否存在:
drop database if exists 數(shù)據(jù)庫(kù)名;
代碼示例:
1.-- 刪除數(shù)據(jù)庫(kù)
2.drop database if exists java1903;
3.-- 創(chuàng)建數(shù)據(jù)庫(kù)
4.create database java1903
5.default character set utf8mb4
6.collate utf8mb4_general_ci;
7.-- 使用數(shù)據(jù)庫(kù)
8.use java1903;
MySQL常見(jiàn)的數(shù)據(jù)類(lèi)型
創(chuàng)建好數(shù)據(jù)庫(kù)后,我們就需要建表,建表我們需要設(shè)置字段的數(shù)據(jù)類(lèi)型,我們先來(lái)了解MySQL中常見(jiàn)的數(shù)據(jù)類(lèi)型。
類(lèi)型名稱(chēng) | 說(shuō)明 | 存儲(chǔ)需求 |
TINYINT | 很小的整數(shù) | 1個(gè)字節(jié) |
SMALLINT | 小的整數(shù) | 2個(gè)宇節(jié) |
MEDIUMINT | 中等大小的整數(shù) | 3個(gè)字節(jié) |
INT (INTEGHR) | 普通大小的整數(shù) | 4個(gè)字節(jié) |
BIGINT | 大整數(shù) | 8個(gè)字節(jié) |
2)小數(shù)類(lèi)型
類(lèi)型名稱(chēng) | 說(shuō)明 | 存儲(chǔ)需求 |
FLOAT | 單精度浮點(diǎn)數(shù) | 4 個(gè)字節(jié) |
DOUBLE | 雙精度浮點(diǎn)數(shù) | 8 個(gè)字節(jié) |
DECIMAL (M, D),DEC | 壓縮的“嚴(yán)格”定點(diǎn)數(shù) | M+2 個(gè)字節(jié) |
3) 日期/時(shí)間類(lèi)型
類(lèi)型名稱(chēng) | 日期格式 | 日期范圍 | 存儲(chǔ)需求 |
YEAR | YYYY | 1901 ~ 2155 | 1 個(gè)字節(jié) |
TIME | HH:MM:SS | -838:59:59 ~ 838:59:59 | 3 個(gè)字節(jié) |
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-3 | 3 個(gè)字節(jié) |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 個(gè)字節(jié) |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4 個(gè)字節(jié) |
3) 字符串類(lèi)型
類(lèi)型名稱(chēng) | 說(shuō)明 | 存儲(chǔ)需求 |
CHAR(M) | 固定長(zhǎng)度非二進(jìn)制字符串 | M 字節(jié),1<=M<=255 |
VARCHAR(M) | 變長(zhǎng)非二進(jìn)制字符串 | L+1字節(jié),在此,L< = M和 1<=M<=255 |
TINYTEXT | 非常小的非二進(jìn)制字符串 | L+1字節(jié),在此,L<2^8 |
TEXT | 小的非二進(jìn)制字符串 | L+2字節(jié),在此,L<2^16 |
MEDIUMTEXT | 中等大小的非二進(jìn)制字符串 | L+3字節(jié),在此,L<2^24 |
LONGTEXT | 大的非二進(jìn)制字符串 | L+4字節(jié),在此,L<2^32 |
ENUM | 枚舉類(lèi)型,只能有一個(gè)枚舉字符串值 | 1或2個(gè)字節(jié),取決于枚舉值的數(shù)目 (最大值為65535) |
SET | 一個(gè)設(shè)置,字符串對(duì)象可以有零個(gè)或 多個(gè)SET成員 | 1、2、3、4或8個(gè)字節(jié),取決于集合 成員的數(shù)量(最多64個(gè)成員) |
4) 二進(jìn)制類(lèi)型
類(lèi)型名稱(chēng) | 說(shuō)明 | 存儲(chǔ)需求 |
BIT(M) | 位字段類(lèi)型 | 大約 (M+7)/8 字節(jié) |
BINARY(M) | 固定長(zhǎng)度二進(jìn)制字符串 | M 字節(jié) |
VARBINARY (M) | 可變長(zhǎng)度二進(jìn)制字符串 | M+1 字節(jié) |
TINYBLOB (M) | 非常小的BLOB | L+1 字節(jié),在此,L<2^8 |
BLOB (M) | 小 BLOB | L+2 字節(jié),在此,L<2^16 |
MEDIUMBLOB (M) | 中等大小的BLOB | L+3 字節(jié),在此,L<2^24 |
LONGBLOB (M) | 非常大的BLOB | L+4 字節(jié),在此,L<2^32 |
表的操作
創(chuàng)建表:
create table 表名
(
字段名 數(shù)據(jù)類(lèi)型 [約束],
字段名 數(shù)據(jù)類(lèi)型 [約束],
....
)
主要的約束類(lèi)型有:
primary key 主鍵,表中只能有一個(gè),不能重復(fù),不能為空
not null 非空,必須填寫(xiě)
unique 唯一,不能重復(fù)
auto_increment 自動(dòng)增長(zhǎng),必須是整數(shù)類(lèi)型,不需要手動(dòng)插入
foreign key 外鍵,建立表之間的引用關(guān)系
刪除表:
drop table 表名;
刪除表時(shí)進(jìn)行檢查:
drop table if exists 表名;
修改表,添加字段:
alter table 表名 add column 字段名 數(shù)據(jù)類(lèi)型;
修改表,刪除字段:
alter table 表名 drop column 字段名;
查看表結(jié)構(gòu):
desc 表名;
代碼示例:
9.-- 刪除表
10.drop table if exists tb_student;
11.-- 創(chuàng)建學(xué)生表
12.create table tb_student
13.(
14. stu_id int primary key auto_increment,
15. stu_name varchar(20) not null,
16. stu_age int not null,
17. stu_gender varchar(1) not null,
18. stu_address varchar(200)
19.);
數(shù)據(jù)操作語(yǔ)言DML
數(shù)據(jù)操作語(yǔ)言有插入、刪除和更新語(yǔ)句組成。
單行插入:
insert into 表名(字段名,字段名,字段名..) values(值,值,值..);
多行插入
insert into 表名(字段名,字段名,字段名..)
values(值,值,值..),(值,值,值..),(值,值,值..);
將一張表數(shù)據(jù)插入另一張表
insert into 表1(字段名,字段名,字段名..)
select 字段名,字段名,字段名 from 表2;
刪除所有數(shù)據(jù)
delete from 表名;
清空表
truncate table 表名;
帶條件的刪除
delete from 表名 [where 條件];
更新
update 表名 set 字段 = 值,字段 = 值... [where 條件];
代碼示例:
20.-- 插入一行學(xué)生記錄
21.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)
22.values('趙六',30,'男','上海');
23.-- 插入多行學(xué)生
24.insert into tb_student(stu_name,stu_age,stu_gender,stu_address)
25.values('陳七',20,'男','武漢'),('陳大七',28,'男','上海'),('陳小七',18,'男','北京');
26.-- 刪除學(xué)號(hào)為3的學(xué)生
27.delete from tb_student where stu_id = 3;
28.-- 全部刪除
29.delete from tb_student;
30.-- 清空表
31.truncate table tb_student;
32.-- 更新陳七的年齡為23,性別為女
33.update tb_student set stu_age = 23,stu_gender = '女'
34.where stu_name = '陳七';
到此,關(guān)于“MySQL結(jié)構(gòu)化查詢語(yǔ)言有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
網(wǎng)站標(biāo)題:MySQL結(jié)構(gòu)化查詢語(yǔ)言有哪些
文章來(lái)源:http://jinyejixie.com/article2/jpdooc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、ChatGPT、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)