国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MySQL入門(一) 數(shù)據(jù)表數(shù)據(jù)庫的基本操作

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

2020-09-01 15:07一杯涼茶 Mysql

這類文章記錄我看MySQL5.6從零開始學(xué)》這本書的過程,將自己覺得重要的東西記錄一下,并有可能幫助到你們,在寫的博文前幾篇度會非常基礎(chǔ),只要動手敲,跟著我寫的例子全部實(shí)現(xiàn)一遍,基本上就搞定了,前期很難理解的東西基

序言

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

需要用的資料以鏈接的形式給需要的同學(xué)。

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

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

開始我的mysql之旅吧   始于2016.12.04

                                              --wh

一、數(shù)據(jù)庫的安裝

這個就不在這里過多闡述了,因?yàn)榫W(wǎng)上實(shí)在是太多安裝mysql的教程了,有了我給的mysql,在按照這個安裝教程(mysql安裝教程)去看,就能夠安裝完好。

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

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

1、開啟mysql服務(wù)命令

net start mysql

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

2、進(jìn)入mysql的兩種方式

明文進(jìn)入:mysql -uroot -proot  格式:mysql -u帳號 -p密碼

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

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

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

前面四個數(shù)據(jù)庫是mysql中自帶的,也就是必須的.

show databases;

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

4、創(chuàng)建名為test_1的數(shù)據(jù)庫

格式:create database 數(shù)據(jù)庫名

create database test_1;

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

5、刪除名為test_1的數(shù)據(jù)庫

格式:drop database 數(shù)據(jù)庫名

drop database test_1;

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

總結(jié):學(xué)習(xí)了對數(shù)據(jù)庫的三個操作,1、查看所有數(shù)據(jù)庫 2、創(chuàng)建數(shù)據(jù)庫 3、刪除數(shù)據(jù)庫

三、數(shù)據(jù)表的基本操作

數(shù)據(jù)表和數(shù)據(jù)庫還有mysql三者的關(guān)系

mysql中保存了很多數(shù)據(jù)庫、一個數(shù)據(jù)庫中可以保存很多表。

對數(shù)據(jù)表的增(創(chuàng)建表)刪(刪除表)改(修改表字段)查(查詢表結(jié)構(gòu))。 注意:這里的操作對象是表,對表的操作也就是表的結(jié)構(gòu),和表中的字段的操作(字段和記錄要分清楚)

前提:表是在數(shù)據(jù)庫下的,所以要先確實(shí)使用哪個數(shù)據(jù)庫。

use test_1;

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

1、創(chuàng)建數(shù)據(jù)表

格式:create table 數(shù)據(jù)表名(

   字段名1  數(shù)據(jù)類型[列級別約束條件],

   字段名2  數(shù)據(jù)類型[列級別約束條件],

   字段名3  數(shù)據(jù)類型[列級別約束條件]

               ); 

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

解釋:

1、[]中括號中的內(nèi)容表示可以有可以沒有,

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

3、約束條件后面會講到

  1.1、創(chuàng)建沒有約束的student表

?
1
2
3
4
5
create table student(
     id  int(11),
     name  varchar(12),
     age  int(11)
          );

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

注釋:show tables 查詢數(shù)據(jù)庫底下的所有表。

1.2、創(chuàng)建有約束的student表

   六大約束:主鍵約束、外鍵約束、非空約束、唯一約束、默認(rèn)約束、自動增加

1.2.1:主鍵約束

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

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

單字段主鍵約束

  兩種方式都可以

  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) );

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

    這個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中的主鍵了(因?yàn)橹麈I是唯一的,才能確實(shí)是哪個部門,進(jìn)而代表員工所在的部門,如果是部門名稱,有些部門的名稱可能是同名。就不能區(qū)分了。),像這樣的字段,就符合外鍵的特點(diǎn),就可以使用外鍵約束,使該字段只能夠存儲另一張表的主鍵。如果不被外鍵約束,那么該字段就無法保證存儲進(jìn)來的值就一定是另一張表的主鍵值。

外鍵約束的特點(diǎn):

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

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

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

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

格式: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的外鍵關(guān)聯(lián)了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  被唯一約束修飾了的字段,表示該字段中的值唯一,不能有相同的值,通俗點(diǎn)講,就好比插入兩條記錄,這兩條記錄中處于該字段的值不能是一樣的。

         create table tablea
        (
            id int(11),
            name varchar(22) unique,
            location varchar(50),
            primary key(id)
        );

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

1.2.5:默認(rèn)約束

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

     
        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,并且使用這個約束的字段只能是整數(shù)類型(任意的整數(shù)類型     tinyint,smallin,int,bigint),默認(rèn)值是1,也就是說從1開始增加的。一般就是給主鍵使用的,自動增加,使每個主鍵的值度不一樣,并且不用我們自己管理,讓主鍵自己自動生成

?
1
2
3
4
5
create table table
(
  id int(11) primary key auto_increment,
  name varchar(22) not null
);

2、查詢表結(jié)構(gòu)  

              2.1、查看表基本結(jié)構(gòu)語句

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

                      describe student; 

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

 2.2、查看創(chuàng)建表的語句 

   格式:show create table 表名

   show create table student;

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

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

格式:show create table 表名\g

show create table student\g;

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

 3、修改數(shù)據(jù)表      

修改數(shù)據(jù)表包括:對表中字段的增加、刪除、修改。 在這個里面用的關(guān)鍵字為 alter

  3.1、修改表名

    格式:alter table<舊表名> rename[to]<新表名>;

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

    alter table student rename to student1;

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

3.2、修改表中的字段名

  格式:alter table<表名> change<舊字段名><新字段名><新數(shù)據(jù)類型>

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

  alter table student change name username varchar(30);

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

3.3、修改表中的數(shù)據(jù)類型

  格式:alter table<表名> modify<字段名><數(shù)據(jù)類型>                     

  alter table student modify username varchar(20);

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

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

3.4、修改字段的排列位置

   方式1:alter table<表名> modify<字段1><數(shù)據(jù)類型> first|after<字段2>

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

   alter table student modify username varchar(20) after age;

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

方式2:alter table<表名> change<字段1><字段2><數(shù)據(jù)類型> first|after<字段3> 

解釋:其實(shí)是一樣的,將是字段2覆蓋字段1,然后在進(jìn)行排序

alter table student change username username varchar(20) after age;

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

總結(jié)

change和modify的區(qū)別?

原理都市一樣的,modify只能修改數(shù)據(jù)類型,但是change能夠修改數(shù)據(jù)類型和字段名,也就是說modify是change的更具體化的一個操作。可能覺得用change只改變一個數(shù)據(jù)類型不太爽,就增加了一個能直接改數(shù)據(jù)類型的使用關(guān)鍵字modify來操作。

3.5、添加字段

格式:alter table<表名稱> add<新字段名><數(shù)據(jù)類型>[約束條件][first|after<已存在的表名>]

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

alter table student add sex varchar(11);

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

3.6、刪除字段

格式:alter table<表名稱> drop<字段名>;

alter table student drop sex;

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

3.7、刪除表的外鍵約束

格式:alter table<表名稱> drop foreign key<外鍵約束名>

注意:外鍵約束名 指的不是被外鍵約束修飾的字段名,切記,而是我們在創(chuàng)建外鍵約束關(guān)系時取的名字。

3.8、更改表的存儲引擎

格式:alter table<表名> engine=<更改后的存儲引擎名>

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

4、刪除表

4.1、刪除無關(guān)聯(lián)表

格式:drop table<表名>;

alter table student;

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

4.2、刪除被其他表關(guān)聯(lián)的主表

這個是比較重要的一點(diǎn),在有外鍵關(guān)聯(lián)關(guān)系的兩張表中,如果刪除主表,那么是刪不掉的,并且會報(bào)錯。因?yàn)橛袕埍硪蕾囉谒D窃趺崔k呢?針對這種情況,總共有兩種方法

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

四、總結(jié)

講了這么多,但實(shí)際中,用到的并不是很多,特別是對表結(jié)構(gòu)的修改的操作,在實(shí)際開發(fā)中,一般數(shù)據(jù)庫表被定義下來了,就不會在修改了,發(fā)現(xiàn)數(shù)據(jù)庫表設(shè)計(jì)的不好,也是將表全部刪除,然后在重新創(chuàng)建過新表。但是在我們學(xué)習(xí)的過程中,這些操作還是很重要的,因?yàn)樾枰@些基礎(chǔ)來學(xué)習(xí)后面更深入的東西,不可能因?yàn)閷?shí)際中不用,就不學(xué)這不學(xué)那,要相信,不管做什么,那肯定是有意義的事情,可能那意義并不大,但是日后肯定會對我們有所幫助。 

原文鏈接:http://www.cnblogs.com/whgk/p/6131285.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线免费日韩 | 亚洲久草| 一本久道久久综合狠狠爱 | 九九热视频精品在线观看 | 一区二区三区 在线 | 三级在线不卡 | 在线观看成人国产 | 欧洲精品在线观看 | 九九九久久久久久 | 国产精品免费久久 | 婷婷综合色 | 久久国产综合 | 精品国产欧美一区二区 | 亚洲成人第一网站 | 国产免费av在线 | 中文字幕在线免费视频 | 天堂99x99es久久精品免费 | 久久国产精品久久久久久久久久 | 91国内外精品自在线播放 | 久综合网 | 国产精品国产三级国产aⅴ原创 | 亚洲大奶网| 欧美性猛交一区二区三区精品 | 亚洲天堂久久 | 天天射影院 | 国产另类ts人妖一区二区 | 日韩精品一区二区三区中文在线 | 色先锋影院 | 日本黄色网址大全 | 日韩精品三区 | 久久久久久91亚洲精品中文字幕 | 日本一区二区三区四区 | 国产一级片 | 日本精品一区二区三区视频 | 国产美女网站视频 | 一区二区三区国产在线 | 精品久久97 | 亚洲黄色高清 | 午夜www | 97久久精品午夜一区二区 | 欧美成人一区二区三区片免费 |