亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL入門(一) 數據表數據庫的基本操作

2024-07-25 19:08:42
字體:
來源:轉載
供稿:網友

序言

這類文章,記錄我看《MySQL5.6從零開始學》這本書的過程,將自己覺得重要的東西記錄一下,并有可能幫助到你們,在寫的博文前幾篇度會非?;A,只要動手敲,跟著我寫的例子全部實現一遍,基本上就搞定了,前期很難理解的東西基本沒有,所以寫博文的內容,就是以練題的形式來呈現的。

需要用的資料以鏈接的形式給需要的同學。

我用的mysql版本為: Mysql-5.5.45-win64.msi 密碼是:26zw

圖形化工具 Navicat(前期不推薦用,直接手動敲): Navicat 密碼:c7fs

開始我的MySQL之旅吧   始于2016.12.04

                                              --WH

一、數據庫的安裝

這個就不在這里過多闡述了,因為網上實在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程(MySQL安裝教程)去看,就能夠安裝完好。

安裝好mysql后,如果需要使用windows命令窗口(也就是cmd)來操作mysql,那么就需要配置環境變量,在安裝好的mysql下找到bin,將其目錄放到環境變量path中去,就行了,檢測成功與否的方法是在cmd命令窗口中輸入mysql,就會出現一大段英文,就說明成功了,反之失敗,如果不會的話就去百度搜教程。

二、數據庫的基本操作

1、開啟mysql服務命令

net start mysql

MySQL,數據表,數據庫

2、進入mysql的兩種方式

明文進入:mysql -uroot -proot  格式:mysql -u帳號 -p密碼

密文進入:mysql -uroot -p 按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示為***這樣。

MySQL,數據表,數據庫

3、查看mysql中所有的數據庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)

前面四個數據庫是mysql中自帶的,也就是必須的.

SHOW DATABASES;

MySQL,數據表,數據庫

4、創建名為test_1的數據庫

格式:CREATE DATABASE 數據庫名

CREATE DATABASE test_1;

MySQL,數據表,數據庫

5、刪除名為test_1的數據庫

格式:DROP DATABASE 數據庫名

DROP DATABASE test_1;

MySQL,數據表,數據庫

總結:學習了對數據庫的三個操作,1、查看所有數據庫 2、創建數據庫 3、刪除數據庫

三、數據表的基本操作

數據表和數據庫還有Mysql三者的關系

mysql中保存了很多數據庫、一個數據庫中可以保存很多表。

對數據表的增(創建表)刪(刪除表)改(修改表字段)查(查詢表結構)。 注意:這里的操作對象是表,對表的操作也就是表的結構,和表中的字段的操作(字段和記錄要分清楚)

前提:表是在數據庫下的,所以要先確實使用哪個數據庫。

USE test_1;

MySQL,數據表,數據庫

1、創建數據表

格式:CREATE TABLE 數據表名(

   字段名1  數據類型[列級別約束條件],

   字段名2  數據類型[列級別約束條件],

   字段名3  數據類型[列級別約束條件]

               ); 

注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。

解釋:

1、[]中括號中的內容表示可以有可以沒有,

2、列級別這個“列”一定要搞清楚說的是什么,一張表中有行有列,列表示豎,行表示橫 

3、約束條件后面會講到

  1.1、創建沒有約束的student表

     CREATE TABLE student(          id  INT(11),          name  VARCHAR(12),          age  INT(11)               );

MySQL,數據表,數據庫

注釋:SHOW TABLES 查詢數據庫底下的所有表。

1.2、創建有約束的student表

   六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認約束、自動增加

1.2.1:主鍵約束

PRIMARY KEY(primary key):獨一無二(唯一)和不能為空(非空),通俗的講,就是在表中增加記錄時,在該字段下的數據不能重復,不能為空,比如以上面創建的表為例子,在表中增加兩條記錄,如果id字段用了主鍵約束。則id不能一樣,并且不能為空。一般每張表中度有一個字段為主鍵,唯一標識這條記錄。以后需要找到該條記錄也可以同這個主鍵來確認記錄,因為主鍵是唯一的,并且非空,一張表中每個記錄的主鍵度不一樣,所以根據主鍵也就能找到對應的記錄。而不是多條重復的記錄。如果沒有主鍵,那么表中就會存在很多重復的記錄,那么即浪費存儲空間,在查詢時也消耗更多資源。

一般被主鍵約束了的字段度習慣性的稱該字段為該表的主鍵

單字段主鍵約束

  兩種方式都可以

  CREATE TABLE student(            CREATE TABLE student(

    id  INT(11) PRIMARY KEY,          id  INT(11),

    name  VARCHAR(12),            name  VARCHAR(12),

    age  INT(11)   age  INT(11),

  ); PRIMARY KEY(id) );

多字段主鍵約束(復合主鍵)

    這個id和name都市主鍵,說明在以后增加的插入的記錄中,id和name不能同時一樣,比如說可以是這樣。一條記錄為id=1,name=yyy、另一條記錄為:id=1,name=zzz。 這樣是可以的。并不是你們所理解的兩個字段分別度不可以相同。

  CREATE TABLE student(CREATE TABLE student(

    id  INT(11) PRIMARY KEY,            id  INT(11),

    name  VARCHAR(12) PRIMARY KEY,       name  VARCHAR(12),

    age  INT(11)     age  INT(11),

  );        PRIMARY KEY(id,name) );

1.2.2:外鍵約束

什么是外鍵舉個例子就清楚了,有兩張表,一張表是emp(員工)表,另一張表是dept(部門)表,一個員工屬于一個部門,那么如何通過員工能讓我們自己他在哪個部門呢?那就只能在員工表中增加一個字段,能代表員工所在的部門,那該字段就只能是存儲dept中的主鍵了(因為主鍵是唯一的,才能確實是哪個部門,進而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區分了。),像這樣的字段,就符合外鍵的特點,就可以使用外鍵約束,使該字段只能夠存儲另一張表的主鍵。如果不被外鍵約束,那么該字段就無法保證存儲進來的值就一定是另一張表的主鍵值。

外鍵約束的特點:

  1、外鍵約束可以描述任意一個字段(包括主鍵),可以為空,并且一個表中可以有多個外鍵。但是外鍵字段中的值必須是另一張表中的主鍵。

  2、這樣被外鍵關聯的兩種表的關系可以稱為父子表或者主從表。子表(從表)擁有外鍵字段的表,父表(主表)被外鍵字段所指向的表。

  3、子表被外鍵約束修飾的字段必須和父表的主鍵字段的類型一樣。

  注意:一個表中有被外鍵修飾的字段,就稱該表有外鍵(是“有外鍵”。而不是“是外鍵”),并會給該表中的外鍵約束取一個名稱,所以我們常說的這個表有沒有外鍵,指的不是被外鍵約束修飾的字段名,而是指這個表是否有存在外鍵約束。也就是說,不能說這個表的外鍵是xxx(該表中被外鍵約束修飾的字段名),這種說法是錯誤的,但是大多數人已經習慣了這樣,雖然影響不大,但是在很多時候需要理解一個東西時,會造成一定的困擾。

格式:CONSTRAINT  外鍵名稱  FOREIGN KEY(被外鍵約束的字段名稱)  REFERENCES  主表名(主鍵字段)

    英文解釋:CONSTRAINT:約束    REFERENCES:參考

    CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22),
            location VARCHAR(50),
            PRIMARY KEY(id)
        );
        CREATE TABLE tableB
        (
            id INT(11),
            name VARCHAR(22) NOT NULL,
            deptId INT(11),
            PRIMARY KEY(id),
            CONSTRAINT tableA_tableB_1 FOREIGH KEY(deptId) REFERENCES tableA(id)
       );            

     解釋:tableB中有一個名為tableA_tableB_1的外鍵關聯了tableA和tableB兩個表,被外鍵約束修飾的字段為tableB中的deptId,主鍵字段為tableA中的id     

1.2.3:非空約束

NOT NULL. 被該約束修飾了的字段,就不能為空,主鍵約束中就包括了這個約束

    CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22) NOT NULL,
            location VARCHAR(50),
            PRIMARY KEY(id)
        );

1.2.4:唯一約束

UNIQUE  被唯一約束修飾了的字段,表示該字段中的值唯一,不能有相同的值,通俗點講,就好比插入兩條記錄,這兩條記錄中處于該字段的值不能是一樣的。

         CREATE TABLE tableA
        (
            id INT(11),
            name VARCHAR(22) UNIQUE,
            location VARCHAR(50),
            PRIMARY KEY(id)
        );

也就是說在插入的記錄中,每條記錄的name值不能是一樣的。

1.2.5:默認約束

Default  指定這一列的默認值為多少,比如,男性同學比較多,性別就可以設置為默認男,如果插入一行記錄時,性別沒有填,那么就默認加上男 

     
        CREATE TABLE table
        (
            id INT(11) PRIMARY KEY,
            name VARCHAR(22) NOT NULL,
            deptId INT(11) DEFAULT 1111,
            salary FLOAT
        );

1.2.6:自動增加  

 AUTO_INCREMENT 一個表只能一個字段使用AUTO_INCREMENT,并且使用這個約束的字段只能是整數類型(任意的整數類型     TINYINT,SMALLIN,INT,BIGINT),默認值是1,也就是說從1開始增加的。一般就是給主鍵使用的,自動增加,使每個主鍵的值度不一樣,并且不用我們自己管理,讓主鍵自己自動生成

  CREATE TABLE table  (    id INT(11) PRIMARY KEY AUTO_INCREMENT,    name VARCHAR(22) NOT NULL  );

2、查詢表結構  

              2.1、查看表基本結構語句

                    格式1:DESCRIBE 表名/DESC 表名  這兩個的功能是一樣的,簡寫了單詞describe

                      DESCRIBE student; 

 MySQL,數據表,數據庫

 2.2、查看創建表的語句 

   格式:SHOW CREATE TABLE 表名

   SHOW CREATE TABLE student;

MySQL,數據表,數據庫

這樣顯示的格式很不好,看不清楚,所以有了下面這個語句

格式:SHOW CREATE TABLE 表名/G

SHOW CREATE TABLE student/G;

MySQL,數據表,數據庫

 3、修改數據表      

修改數據表包括:對表中字段的增加、刪除、修改。 在這個里面用的關鍵字為 ALTER

  3.1、修改表名

    格式:ALTER TABLE<舊表名> RENAME[TO]<新表名>;

    將student表名改為student1(改完后在改回來)

    ALTER TABLE student RENAME TO student1;

MySQL,數據表,數據庫

3.2、修改表中的字段名

  格式:ALTER TABLE<表名> CHANGE<舊字段名><新字段名><新數據類型>

  將student表中的name字段名改為 username

  ALTER TABLE student CHANGE name username VARCHAR(30);

MySQL,數據表,數據庫

3.3、修改表中的數據類型

  格式:ALTER TABLE<表名> MODIFY<字段名><數據類型>                     

  ALTER TABLE student MODIFY username VARCHAR(20);

MySQL,數據表,數據庫

解釋:只能修改字段名的數據類型,但是其原理跟上面change做的事情一樣,這里也有修改字段名的過程,只不過修改后的字段名和修改前的字段名相同,但是數據類型不一樣。

3.4、修改字段的排列位置

   方式1:ALTER TABLE<表名> MODIFY<字段1><數據類型> FIRST|AFTER<字段2>

   解釋:將字段1的位置放到第一,或者放到指定字段2的后面

   ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;

MySQL,數據表,數據庫

方式2:ALTER TABLE<表名> CHANGE<字段1><字段2><數據類型> FIRST|AFTER<字段3> 

解釋:其實是一樣的,將是字段2覆蓋字段1,然后在進行排序

ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;

MySQL,數據表,數據庫

總結

CHANGE和MODIFY的區別?

原理都市一樣的,MODIFY只能修改數據類型,但是CHANGE能夠修改數據類型和字段名,也就是說MODIFY是CHANGE的更具體化的一個操作??赡苡X得用CHANGE只改變一個數據類型不太爽,就增加了一個能直接改數據類型的使用關鍵字MODIFY來操作。

3.5、添加字段

格式:ALTER TABLE<表名稱> ADD<新字段名><數據類型>[約束條件][FIRST|AFTER<已存在的表名>]

解釋:在一個特定位置增加一個新的字段,如果不指定位置,默認是最后一個。

ALTER TABLE student ADD sex VARCHAR(11);

MySQL,數據表,數據庫

3.6、刪除字段

格式:ALTER TABLE<表名稱> DROP<字段名>;

ALTER TABLE student DROP sex;

MySQL,數據表,數據庫

3.7、刪除表的外鍵約束

格式:ALTER TABLE<表名稱> DROP FOREIGN KEY<外鍵約束名>

注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們在創建外鍵約束關系時取的名字。

3.8、更改表的存儲引擎

格式:ALTER TABLE<表名> ENGINE=<更改后的存儲引擎名>

這個存儲引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點就不清楚了,所以打算留到日后在說。

4、刪除表

4.1、刪除無關聯表

格式:DROP TABLE<表名>;

ALTER TABLE student;

MySQL,數據表,數據庫

4.2、刪除被其他表關聯的主表

這個是比較重要的一點,在有外鍵關聯關系的兩張表中,如果刪除主表,那么是刪不掉的,并且會報錯。因為有張表依賴于他。那怎么辦呢?針對這種情況,總共有兩種方法

1、先刪除你子表,然后在刪除父表,這樣就達到了刪除父表的目的,但是子表也要被刪除
2、先解除外鍵關系,然后在刪除父表,這樣也能達到目的,并且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關系。

四、總結

講了這么多,但實際中,用到的并不是很多,特別是對表結構的修改的操作,在實際開發中,一般數據庫表被定義下來了,就不會在修改了,發現數據庫表設計的不好,也是將表全部刪除,然后在重新創建過新表。但是在我們學習的過程中,這些操作還是很重要的,因為需要這些基礎來學習后面更深入的東西,不可能因為實際中不用,就不學這不學那,要相信,不管做什么,那肯定是有意義的事情,可能那意義并不大,但是日后肯定會對我們有所幫助。 


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区视频免费| 91chinesevideo永久地址| 成人444kkkk在线观看| 欧美人成在线视频| 精品色蜜蜜精品视频在线观看| 97精品一区二区三区| 亚洲国产精品久久久久| 久久精品中文字幕免费mv| 日韩av免费在线看| 成人免费在线网址| 亚洲精品一区二区久| 亚洲国产精品久久久久| 欧美最顶级的aⅴ艳星| 久久久久久久久久久av| 91超碰中文字幕久久精品| 欧美性生交xxxxx久久久| 日韩二区三区在线| 欧美日韩国产第一页| 91精品国产电影| 国内精品一区二区三区四区| 亚洲成人精品av| 欧美另类交人妖| 2019亚洲日韩新视频| 中文字幕日韩电影| 国产欧美一区二区三区久久| 91精品国产色综合| 久久男人的天堂| 日韩男女性生活视频| 国产精品日韩一区| 日韩激情av在线免费观看| 国产欧美日韩综合精品| 国产精品久久久久久久av大片| 色婷婷av一区二区三区久久| 黑人与娇小精品av专区| 亚洲人成自拍网站| 亚洲成人精品久久久| 欧美日韩一区二区在线播放| 国产精品久久久久久久久久久久| 欧美久久精品午夜青青大伊人| 国产精品综合不卡av| 欧美日韩美女在线观看| 亚洲第一综合天堂另类专| 热99久久精品| 欧美性猛交xxxx乱大交| 亚洲精品久久久久久下一站| 亚洲第一精品夜夜躁人人躁| 国产成人精品优优av| 日韩欧美国产免费播放| 日韩激情视频在线| 欧美制服第一页| 亚洲成人久久电影| 久久久精品一区二区三区| 欧美在线视频免费观看| 成人免费淫片aa视频免费| 国产v综合ⅴ日韩v欧美大片| 国产成人精品一区二区三区| 国产精品久久一区| 成人亚洲综合色就1024| 国产成一区二区| 亚洲视频日韩精品| 热久久免费视频精品| 亚洲国产天堂久久综合网| 国产成人亚洲综合| 成人国产精品色哟哟| 亚洲九九九在线观看| 亚洲欧美国产日韩天堂区| 亚洲欧美国产va在线影院| 日韩精品免费在线| 欧美电影在线免费观看网站| 欧美大尺度电影在线观看| 黑人巨大精品欧美一区二区免费| 亚洲日本欧美日韩高观看| www.亚洲成人| 91av在线精品| 亚洲精品视频播放| 国产精品老女人精品视频| 97av在线影院| 精品国产成人在线| 日韩欧美精品免费在线| 国产欧美日韩亚洲精品| 日韩欧美在线国产| 97久久精品国产| 久久精品成人一区二区三区| 久久久精品2019中文字幕神马| 91大神福利视频在线| 欧美激情欧美激情| 久久久久久久久久av| 日韩欧美成人区| 亚洲精品国产suv| 欧美日韩另类视频| 久热99视频在线观看| 国产精品三级在线| 国产成+人+综合+亚洲欧洲| 国产aaa精品| 欧美激情女人20p| 成人免费观看a| 精品国产依人香蕉在线精品| 国产精品成人一区二区三区吃奶| 伊人久久久久久久久久| 91精品国产91久久久久久最新| 欧美精品久久久久久久免费观看| 精品日韩视频在线观看| 亚洲性av网站| 国精产品一区一区三区有限在线| 91精品国产网站| 国产精品成av人在线视午夜片| 日韩一二三在线视频播| 亚洲女人被黑人巨大进入al| 51色欧美片视频在线观看| 国产热re99久久6国产精品| 亚洲精品成a人在线观看| 国产精品久久久久7777婷婷| 日本国产精品视频| 一区二区av在线| 日韩欧美亚洲一二三区| 久久6免费高清热精品| 日本不卡视频在线播放| 亚洲欧美国产精品| 亚洲国产天堂久久综合| 国产精品99一区| 欧美激情a在线| 国产丝袜精品第一页| 亚洲成人三级在线| 日韩性xxxx爱| 日本成人免费在线| 欧美噜噜久久久xxx| 亚洲激情视频网| 亚洲午夜av电影| 国产成人精品国内自产拍免费看| 亚洲第一精品电影| 最好看的2019的中文字幕视频| 欧美激情a∨在线视频播放| 91亚洲一区精品| 欧美午夜精品久久久久久浪潮| 欧美激情一区二区三区高清视频| 成人黄色影片在线| 欧美激情久久久久| 亚洲aⅴ男人的天堂在线观看| 久久久久国色av免费观看性色| 午夜欧美大片免费观看| 日韩中文字幕精品| 亚洲国产又黄又爽女人高潮的| 国产区亚洲区欧美区| 亚洲影影院av| 精品中文字幕在线观看| 中文字幕自拍vr一区二区三区| 亚洲国产精品va在线| 成人亚洲激情网| 午夜精品一区二区三区在线播放| 国产精品va在线播放| 亚洲免费av网址| www.国产精品一二区| 久久久中精品2020中文| 成人xxxx视频| 久久成人精品视频| 成人做爽爽免费视频| 欧美高清第一页| 国产精品精品一区二区三区午夜版| 亚洲电影免费观看高清完整版| 亚洲一区二区久久久久久久| 91欧美精品午夜性色福利在线| 亚洲欧美国内爽妇网| 日韩av不卡在线| 欧美激情女人20p|