<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                一、數據庫的安裝         這個就不在這里過多闡述了,因為網上實在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程([MySQL安裝教程](http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html "http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html"))去看,就能夠安裝完好。         安裝好mysql后,如果需要使用windows命令窗口(也就是cmd)來操作mysql,那么就需要配置環境變量,在安裝好的mysql下找到bin,將其目錄放到環境變量path中去,就行了,檢測成功與否的方法是在cmd命令窗口中輸入mysql,就會出現一大段英文,就說明成功了,反之失敗,如果不會的話就去百度搜教程。? 二、數據庫的基本操作         1、開啟mysql服務命令               net start mysql                       ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204155741568-1854533017.png)         2、進入mysql的兩種方式               明文進入:mysql -uroot -proot  格式:mysql -u帳號 -p密碼               密文進入:mysql -uroot -p 按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示為***這樣。                         ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204155703302-721556260.png)         3、查看mysql中所有的數據庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)               前面四個數據庫是mysql中自帶的,也就是必須的.               SHOW DATABASES;                       ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204160033802-260226644.png)         4、創建名為test_1的數據庫               格式:CREATE DATABASE 數據庫名               CREATE DATABASE test_1;                       ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204160316974-1326280092.png)        5、刪除名為test_1的數據庫               格式:DROP DATABASE 數據庫名               DROP DATABASE test_1;                       ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204160621021-1045601691.png)              總結:學習了對數據庫的三個操作,1、查看所有數據庫? 2、創建數據庫? 3、刪除數據庫 三、數據表的基本操作       數據表和數據庫還有Mysql三者的關系           mysql中保存了很多數據庫、一個數據庫中可以保存很多表。       對數據表的增(創建表)刪(刪除表)改(修改表字段)查(查詢表結構)。? 注意:這里的操作對象是表,對表的操作也就是表的結構,和表中的字段的操作(字段和記錄要分清楚)       前提:表是在數據庫下的,所以要先確實使用哪個數據庫。               USE test_1;                     ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204161709881-506044492.png)       1、創建數據表                格式:CREATE TABLE 數據表名(                     字段名1  數據類型[列級別約束條件],                     字段名2  數據類型[列級別約束條件],                     字段名3  數據類型[列級別約束條件]                );     注意:格式不一定需要這樣隔著寫,完全可以全部寫成一行。但是那樣寫可觀性非常差。我這樣寫只是為了可以看的更清晰。                解釋:1、[]中括號中的內容表示可以有可以沒有,2、列級別這個“列”一定要搞清楚說的是什么,一張表中有行有列,列表示豎,行表示橫 3、約束條件后面會講到           1.1、創建沒有約束的student表                CREATE TABLE student(                     id  INT(11),                     name  VARCHAR(12),                     age  INT(11)                );                        ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204162618927-1051742476.png)                     注釋: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;                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204185546162-822419514.png)               2.2、查看創建表的語句                      格式:SHOW CREATE TABLE 表名                       SHOW CREATE TABLE student;                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204190125552-203805425.png)                       這樣顯示的格式很不好,看不清楚,所以有了下面這個語句                     格式:SHOW CREATE TABLE 表名\G                       SHOW CREATE TABLE student\G;                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204190254677-97481755.png)           3、修改數據表                   修改數據表包括:對表中字段的增加、刪除、修改。? 在這個里面用的關鍵字為?ALTER             3.1、修改表名                   格式:ALTER TABLE RENAME[TO];                     將student表名改為student1(改完后在改回來)                     ALTER TABLE student RENAME TO student1;                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204192211037-2009386834.png)             3.2、修改表中的字段名                   格式:ALTER TABLE CHANGE                     將student表中的name字段名改為 username                     ALTER TABLE student CHANGE name username VARCHAR(30);                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204191056459-352522806.png)    ?                  解釋:這個不僅能改變字段名,還能將字段的數據類型一并修改,也就是說,你可以單純的只修改字段名,也可以單純的只修改數據類型,也可以同時一起修改             3.3、修改表中的數據類型 ?                   格式:ALTER TABLE MODIFY                                            ALTER TABLE student MODIFY username VARCHAR(20);                           ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204191616646-394257451.png)                       解釋:只能修改字段名的數據類型,但是其原理跟上面change做的事情一樣,這里也有修改字段名的過程,只不過修改后的字段名和修改前的字段名相同,但是數據類型不一樣。             3.4、修改字段的排列位置                    方式1:ALTER TABLE MODIFY FIRST|AFTER                       解釋:將字段1的位置放到第一,或者放到指定字段2的后面                       ALTER TABLE student MODIFY username VARCHAR(20) AFTER age;                          ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204192945240-1497454334.png)                      方式2:ALTER TABLE CHANGE FIRST|AFTER                        解釋:其實是一樣的,將是字段2覆蓋字段1,然后在進行排序                       ALTER TABLE student CHANGE username username VARCHAR(20) AFTER age;                          ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204193358693-1906585379.png)                     總結                      CHANGE和MODIFY的區別?                       原理都市一樣的,MODIFY只能修改數據類型,但是CHANGE能夠修改數據類型和字段名,也就是說MODIFY是CHANGE的更具體化的一個操作。可能覺得用CHANGE只改變一個數據類型不太爽,就增加了一個能直接改數據類型的使用關鍵字MODIFY來操作。             3.5、添加字段                   格式:ALTER TABLE ADD[約束條件][FIRST|AFTER]                     解釋:在一個特定位置增加一個新的字段,如果不指定位置,默認是最后一個。                     ALTER TABLE student ADD sex VARCHAR(11);                          ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204194454834-1504000607.png)             3.6、刪除字段                   格式:ALTER TABLE DROP;                     ALTER TABLE student DROP sex;                          ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204194729052-2082596238.png)              3.7、刪除表的外鍵約束                   格式:ALTER TABLE DROP FOREIGN KEY                      注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們在創建外鍵約束關系時取的名字。             3.8、更改表的存儲引擎                   格式:ALTER TABLE ENGINE=                   這個存儲引擎目前我自己也不太清楚,雖然知道有哪幾種引擎,但是稍微深入一點就不清楚了,所以打算留到日后在說。       4、刪除表             4.1、刪除無關聯表                   格式:DROP TABLE;                   ALTER TABLE student;                          ![](https://images2015.cnblogs.com/blog/874710/201612/874710-20161204195655990-1676670638.png)              4.2、刪除被其他表關聯的主表 ?                  這個是比較重要的一點,在有外鍵關聯關系的兩張表中,如果刪除主表,那么是刪不掉的,并且會報錯。因為有張表依賴于他。那怎么辦呢?針對這種情況,總共有兩種方法                   1、先刪除你子表,然后在刪除父表,這樣就達到了刪除父表的目的,但是子表也要被刪除                   2、先解除外鍵關系,然后在刪除父表,這樣也能達到目的,并且保留了子表,只刪除我們不需要的父表。在3.7中就講解了如何刪除外鍵關系。 四、總結       講了這么多,但實際中,用到的并不是很多,特別是對表結構的修改的操作,在實際開發中,一般數據庫表被定義下來了,就不會在修改了,發現數據庫表設計的不好,也是將表全部刪除,然后在重新創建過新表。但是在我們學習的過程中,這些操作還是很重要的,因為需要這些基礎來學習后面更深入的東西,不可能因為實際中不用,就不學這不學那,要相信,不管做什么,那肯定是有意義的事情,可能那意義并不大,但是日后肯定會對我們有所幫助。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看