中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

上海網(wǎng)站建設公司 1861webgoogle search

上海網(wǎng)站建設公司 1861web,google search,網(wǎng)站制作的頁面比例,上海網(wǎng)站制作費用目錄 1、什么是數(shù)據(jù)庫 2、 數(shù)據(jù)庫基本操作 2.1 查看當前數(shù)據(jù)庫 2.2 創(chuàng)建一個數(shù)據(jù)庫 2.3 選中數(shù)據(jù)庫 2.4 刪除數(shù)據(jù)庫 3、常見的數(shù)據(jù)類型 3.1 數(shù)值類型 3.2 字符串類型 3.3 日期類型 4、表的操作 4.1 創(chuàng)建表 4.2 查看指定數(shù)據(jù)庫下的所有表 4.3 查看表的結構 4.…


?

目錄

1、什么是數(shù)據(jù)庫

2、 數(shù)據(jù)庫基本操作

2.1 查看當前數(shù)據(jù)庫

2.2 創(chuàng)建一個數(shù)據(jù)庫

2.3 選中數(shù)據(jù)庫

2.4 刪除數(shù)據(jù)庫?

3、常見的數(shù)據(jù)類型

3.1 數(shù)值類型?

3.2 字符串類型

3.3 日期類型?

4、表的操作

4.1 創(chuàng)建表

4.2 查看指定數(shù)據(jù)庫下的所有表

4.3 查看表的結構

4.4 刪除表


1、什么是數(shù)據(jù)庫

數(shù)據(jù)庫其實是一類軟件,這樣的軟件就能夠對數(shù)據(jù)進行操作,比如增刪改查。前面我們學習過的數(shù)據(jù)結構也是來管理數(shù)據(jù)的,數(shù)據(jù)呢也是基于數(shù)據(jù)結構實現(xiàn)出來的軟件。

數(shù)據(jù)庫大概可以分為兩類:

關系型數(shù)據(jù)庫:MySQL,Oracle,SQLServer,SQLite...

非關系型數(shù)據(jù)庫:Redis,MongoDB,HBase...

上述所說的呢,都是軟件,本專欄主要講解 SQL 這門編程語言,去操作 MySQL 數(shù)據(jù)庫。

一條 SQL 指令是可以換行的,以分號結尾即可。


2、 數(shù)據(jù)庫基本操作

數(shù)據(jù)庫的操作不區(qū)分大小寫!?

2.1 查看當前數(shù)據(jù)庫

MySQL中其實自帶了很多系統(tǒng)庫,使用 show databases; 就能查看當前所有的數(shù)據(jù)庫了:

show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
-- 5 rows in set (0.00 sec)

上面顯示的除了 test 是博主創(chuàng)建的,其他的就是系統(tǒng)自帶的數(shù)據(jù)庫了,系統(tǒng)帶的庫可不要隨便亂動哦!

2.2 創(chuàng)建一個數(shù)據(jù)庫

create database 數(shù)據(jù)庫名;

比如說這里我們要創(chuàng)建一個 demo 數(shù)據(jù)庫,直接執(zhí)行上述的 SQL 語句即可:

create database demo;
-- Query OK, 1 row affected (0.00 sec)show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demo               |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
-- 6 rows in set (0.00 sec)

這里有個小細節(jié)不知道大家發(fā)現(xiàn)了沒有,創(chuàng)建數(shù)據(jù)庫的時候是 database,顯示所有數(shù)據(jù)庫是 databases,這里為啥,自然就不用博主解釋了吧,后續(xù)查看數(shù)據(jù)庫中所有表的操作也是類似的哦!

在創(chuàng)建數(shù)據(jù)庫的時候,也是可以指定字符集的:

create database 數(shù)據(jù)庫名 charset 字符集名;

如果創(chuàng)建數(shù)據(jù)庫名重復了會咋樣?

create database demo;
-- ERROR 1007 (HY000): Can't create database 'demo'; database exists

有一個辦法,可以解決報錯:

create database if not exists demo;
-- Query OK, 1 row affected, 1 warning (0.00 sec)

這樣寫就沒問題了,也就是不會報錯了,但是有一個警告,學習Java階段,我們知道一個程序中允許有 warning 但不允許有 error。

這樣寫的意思就是,如果存在了 demo 這個數(shù)據(jù)庫,那么就不創(chuàng)建了,沒有存在才創(chuàng)建 demo 數(shù)據(jù)庫,有小伙伴可能會問,這有啥用呢?不就是把 error 變成了 warning 嗎?

很多時候 SQL 是寫在文件中的,進行批量執(zhí)行,如果執(zhí)行過程中,某個操作報錯了,那么后續(xù)的代碼是無法執(zhí)行的,而 warning 是不影響的!

注意:數(shù)據(jù)庫的名字不能是 SQL 的關鍵字。?

2.3 選中數(shù)據(jù)庫

一個 MySQL 服務器上,數(shù)據(jù)庫是可以有多個的,要對數(shù)據(jù)庫進行操作,就需要先明確我們要操作的是哪個數(shù)據(jù)庫。

use demo;
-- Database changed

那么選中數(shù)據(jù)庫后,我們后面的操作都是針對這個 demo 數(shù)據(jù)庫來執(zhí)行的。

2.4 刪除數(shù)據(jù)庫?

drop database demo; -- drop database 數(shù)據(jù)庫名;
-- Query OK, 0 rows affected (0.01 sec)

注意:刪除數(shù)據(jù)庫是非常危險的一個操作,如果你刪的是測試環(huán)境的那還好,如果你刪的是生產(chǎn)環(huán)境的數(shù)據(jù)庫,那就可能會出問題了,可能有的人想到,反正有備份,但是雖然有備份,但是仍然是需要耗費大量時間的,一個公司的數(shù)據(jù)量可想而知。?


3、常見的數(shù)據(jù)類型

3.1 數(shù)值類型?

數(shù)據(jù)類型大小說明
BIT[ (M) ]M指定位 數(shù),默認 為1二進制數(shù),M范圍從1到64, 存儲數(shù)值范圍從0到2^M-1
TINYINT1字節(jié)
SMALLINT2字節(jié)
INT4字節(jié)
BIGINT8字節(jié)
FLOAT(M,D)4字節(jié)單精度,M指定長度,D指定小數(shù)位數(shù),會發(fā)生精度丟失
DOUBLE(M,D)8字節(jié)
DECIMAL(M,D)M/D最大 值+2雙精度,M指定長度,D表示 小數(shù)點位數(shù)。精確數(shù)值
NUMERIC(M, D)M/D最大 值+2和DECIMAL一樣

數(shù)值類型可以定義成無符號(unsigned),表示不取負數(shù),但是沒這個必要,就比如對于 int 類型可能放不下的數(shù)據(jù) int unsigned 也可能放不下,不如直接采用 bigint 來的實在。

上述常用類型:int,double,decimal,bigint?

3.2 字符串類型

數(shù)據(jù)類型大小說明
VARCHAR(SIZE)0-65,535字節(jié)可變長度字符串
TEXT0-65,535字節(jié)長文本數(shù)據(jù)
MEDIUMTEXT0-16 777 215字節(jié)中等長度文本數(shù)據(jù)
BLOB0-65,535字節(jié)二進制形式的長文本數(shù)據(jù)

上述的 VARCHAR(128) 表示這個列最多存 128 個字符,但是這里也不是你寫了 128 就真的固定分配了這么多內(nèi)存,也會動態(tài)適應,但最大的內(nèi)存不會超過這個 128.

TEXT 和 MEDIUMTEXT 更適合于更長的字符串。BLOB 主要是存二進制數(shù)據(jù)的。

3.3 日期類型?

數(shù)據(jù)類型大小說明
DATETIME8字節(jié)范圍從1000到9999年,不會進行時區(qū)的 檢索及轉換。
TIMESTAMP4字節(jié)范圍從1970到2038年,自動檢索當前時 區(qū)并進行轉換。

第二個目前就不推薦使用了,畢竟時間戳到 2038 年就用盡了。


4、表的操作

4.1 創(chuàng)建表

當我們要創(chuàng)建表的時候,要明確是哪個數(shù)據(jù)庫中創(chuàng)建,所以創(chuàng)建表的前提是,我們要選中需要操作的數(shù)據(jù)庫。

use demo;
-- Database changed
create table student(id int, name varchar(10));
-- Query OK, 0 rows affected (0.02 sec)

這里我們的學生表就創(chuàng)建完成了,創(chuàng)建表采用 create 這個命令,與創(chuàng)建數(shù)據(jù)庫是類似的,這里值得注意的是,我們定義字段是 字段名在前 字段類型在后,中間用空格隔開,每列中間用逗號隔開。

這里 varchar(10),這里面的10并不是表示10個字節(jié),而是表示10個字符,具體大小取決于你數(shù)據(jù)庫設定的字符集,要知道不同的字符集設定的每個字符大小可是不一樣的!這里在JavaSE有講到過。

同一個表中是不能存在兩張名字相同的表的:

create table student(id int);
-- ERROR 1050 (42S01): Table 'student' already exists

而且如上代碼可只,與列無關,純屬是表明不能相同!

表名和列名,不能和 SQL 關鍵字相同:

create table table (val int);
-- ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table (val int)' at line 1

這里發(fā)現(xiàn)報錯了,如果實在要表名或列名與關鍵字相同怎么辦呢?可以把表名或列名使用反引號引起來就行了,但是不推薦:

create table `table`(val int);
-- Query OK, 0 rows affected (0.02 sec)

英文千千萬,你何必非要跟關鍵字過意不去呢?

在創(chuàng)建表的時候也可以對字段增加說明,使用 comment 關鍵字:

create table student (id int comment '學號', name varchar(10) comment '姓名');
-- Query OK, 0 rows affected (0.02 sec)

使用如下指令就能查看已有表所有字段的注釋了:

show full columns from student;
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type        | Collation       | Null | Key | Default | Extra | Privileges                      | Comment |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id    | int(11)     | NULL            | YES  |     | NULL    |       | select,insert,update,references | 學號    |
| name  | varchar(10) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references | 姓名    |
+-------+-------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
-- 2 rows in set (0.00 sec)

注意:MySQL 中不允許創(chuàng)建沒有任何列的表,這樣的表是沒有無意義的。

4.2 查看指定數(shù)據(jù)庫下的所有表

show tables;
+----------------+
| Tables_in_demo |
+----------------+
| student        |
+----------------+
-- 1 row in set (0.00 sec)

那個跟 SQL 關鍵字重名的 table 表的我已經(jīng)刪了,所以這里能看見只存在一張前面剛創(chuàng)建的學生表,這里還是要注意,這里 tables,相比 table 是多了個 s 的,跟顯示所有數(shù)據(jù)庫是一樣的。

由于前面操作我已經(jīng)選中的 demo 數(shù)據(jù)庫,所以顯示指定數(shù)據(jù)庫下所有表的操作是不會出錯的,但是有的小伙伴可能一登錄就開始查看所有的表,在沒選中數(shù)據(jù)庫的情況下,是會報錯的:

show tables;
-- ERROR 1046 (3D000): No database selected

4.3 查看表的結構

desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
-- 2 rows in set (0.00 sec)

int(11) 這個只是顯示的寬度,不會影響數(shù)據(jù)的存儲,Null這一列表示該列能否為空,這個后續(xù)文章也會介紹到,key 與表的約束有關,Default 指的是該列沒有插入數(shù)據(jù)默認是啥數(shù)據(jù),Extra 額外的描述,這些內(nèi)容在后續(xù)都會介紹到,這里簡單看一下即可。

4.4 刪除表

drop table student;
-- Query OK, 0 rows affected (0.00 sec)

跟刪除庫一樣,仍然是個特別危險的操作,這里需要注意。

那如果沒有要刪除的表則會報錯:

drop table hello;
-- ERROR 1051 (42S02): Unknown table 'demo.hello'

這里一樣的 ERROR,能不能不讓報錯呢?像我們前面講到過,報錯是不好的,跟創(chuàng)建數(shù)據(jù)庫時如果重名是一樣的:

drop table if exists hello;
-- Query OK, 0 rows affected, 1 warning (0.00 sec)

下期預告:【MySQL】增刪改操作(基礎篇)

http://www.risenshineclean.com/news/11641.html

相關文章:

  • 秦皇島網(wǎng)站建設seo百度指數(shù)平臺
  • 給網(wǎng)站做壓力測試百度一下你就知道官網(wǎng)網(wǎng)址
  • 怎么在工商局網(wǎng)站做注銷蘇州seo關鍵詞優(yōu)化推廣
  • 免費申請網(wǎng)站官網(wǎng)培訓機構退費糾紛一般怎么解決
  • 建網(wǎng)站 綁定域名 網(wǎng)址重慶好的seo平臺
  • 企業(yè)制作企業(yè)網(wǎng)站今天發(fā)生的重大新聞內(nèi)容
  • 上海網(wǎng)站建設-中國互聯(lián)免費模板
  • .net做的大型網(wǎng)站嗎百度搜索排名
  • 優(yōu)秀政府門戶網(wǎng)站b2b平臺有哪幾個
  • 手機自適應網(wǎng)站建設深圳網(wǎng)站做優(yōu)化哪家公司好
  • 成都市網(wǎng)站建設怎么自己注冊網(wǎng)站
  • 網(wǎng)站建設合同圖片網(wǎng)店推廣方案策劃書
  • 煙臺h5網(wǎng)站建設公司游戲代理免費加盟
  • 專門做恐怖電影網(wǎng)站谷歌排名推廣
  • 做網(wǎng)站的顏色搭配網(wǎng)絡優(yōu)化seo薪酬
  • 查詢網(wǎng)站備案號qq排名優(yōu)化網(wǎng)站
  • 網(wǎng)站服務器 內(nèi)存seo怎么才能做好
  • 做網(wǎng)站的如何找客戶平臺引流推廣怎么做
  • 做網(wǎng)站可以賺錢嗎?atp最新排名
  • 農(nóng)村網(wǎng)站建設百度上怎么免費開店
  • 設置本機外網(wǎng)ip做網(wǎng)站技術培訓
  • 做線下活動的網(wǎng)站泉州百度關鍵詞排名
  • 可做生物試卷的網(wǎng)站站長統(tǒng)計在線觀看
  • 高端網(wǎng)站開發(fā)企業(yè)百度百度一下
  • 有做自由行包車的網(wǎng)站qq群推廣網(wǎng)站免費
  • 大理北京網(wǎng)站建設app開發(fā)定制
  • 青島app網(wǎng)站開發(fā)企業(yè)網(wǎng)站建設價格
  • 唐河做網(wǎng)站網(wǎng)站推廣鄭州
  • 如何選擇贛州網(wǎng)站建設網(wǎng)站關鍵詞排名服務
  • 長沙app下載seo網(wǎng)站推廣實例