小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MySQL之SQL入門(mén)(一)

 好程序員IT 2019-05-29

前言:各種版本的數(shù)據(jù)庫(kù)中,有一種通用的語(yǔ)言用于管理數(shù)據(jù)庫(kù)中的數(shù)據(jù),它就是SQL,本章我們將學(xué)習(xí)基本的SQL語(yǔ)句。

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ǔ)句,也稱為“數(shù)據(jù)檢索語(yǔ)句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字SELECT是DQL(也是所有SQL)用得最多的動(dòng)詞,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。這些DQL保留字常與其他類型的SQL語(yǔ)句一起使用。

二:數(shù)據(jù)操作語(yǔ)言(DML:Data Manipulation Language):

其語(yǔ)句包括動(dòng)詞INSERT,UPDATE和DELETE。它們分別用于添加,修改和刪除表中的行。也稱為動(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ù)類型

創(chuàng)建好數(shù)據(jù)庫(kù)后,我們就需要建表,建表我們需要設(shè)置字段的數(shù)據(jù)類型,我們先來(lái)了解MySQL中常見(jiàn)的數(shù)據(jù)類型。

類型名稱

說(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ù)類型

類型名稱

說(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í)間類型

類型名稱

日期格式

日期范圍

存儲(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) 字符串類型

類型名稱

說(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

枚舉類型,只能有一個(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)制類型

類型名稱

說(shuō)明

存儲(chǔ)需求

BIT(M)

位字段類型

大約 (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ù)類型 [約束],

字段名 數(shù)據(jù)類型 [約束],

....

)

主要的約束類型有:

primary key 主鍵,表中只能有一個(gè),不能重復(fù),不能為空

not null   非空,必須填寫(xiě)

unique 唯一,不能重復(fù)

auto_increment 自動(dòng)增長(zhǎng),必須是整數(shù)類型,不需要手動(dòng)插入

foreign key 外鍵,建立表之間的引用關(guān)系

刪除表:

drop table 表名;

刪除表時(shí)進(jìn)行檢查:

drop table if exists 表名;

修改表,添加字段:

alter table 表名 add column 字段名 數(shù)據(jù)類型;

修改表,刪除字段:

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 = '陳七';

總結(jié)

本章我們學(xué)習(xí)了SQL語(yǔ)言中的DDL和DML,能實(shí)現(xiàn)建表建表和數(shù)據(jù)的增刪改操作,還有一個(gè)重要的查詢操作,也就是DQL,會(huì)在下章介紹。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(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)遵守用戶 評(píng)論公約

    類似文章 更多