久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL用命令行方式建庫(kù)和表

共計(jì) 7767 個(gè)字符,預(yù)計(jì)需要花費(fèi) 20 分鐘才能閱讀完成。

本篇內(nèi)容主要講解“MySQL 用命令行方式建庫(kù)和表”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓丸趣 TV 小編來(lái)帶大家學(xué)習(xí)“MySQL 用命令行方式建庫(kù)和表”吧!

 
1. 創(chuàng)建
 
  使用 create database 或 create schema 命令可以創(chuàng)建數(shù)據(jù)庫(kù)。
 
create database 庫(kù)名
 
create database if not exists 庫(kù)名(創(chuàng)建庫(kù)并檢驗(yàn)創(chuàng)建的庫(kù)是否存在,不存在則建,存在就不建了)
 
MySQL 不允許兩個(gè)數(shù)據(jù)庫(kù)使用相同的名字,使用 ifnot exists 從句可以不顯示錯(cuò)誤信息
 
顯示所有數(shù)據(jù)庫(kù):showdatabases;  www.2cto.com  
 
顯示創(chuàng)建數(shù)據(jù)庫(kù)的定義信息:show create dabasese 庫(kù)名
 
2. 創(chuàng)建了數(shù)據(jù)庫(kù)之后使用 USE 命令可指定當(dāng)前數(shù)據(jù)庫(kù)。
 
語(yǔ)法格式:use  db_name;
 
說(shuō)明:這個(gè)語(yǔ)句也可以用來(lái)從一個(gè)數(shù)據(jù)庫(kù)“跳轉(zhuǎn)”到另一個(gè)數(shù)據(jù)庫(kù),在用 create database 語(yǔ)句創(chuàng)建了數(shù)據(jù)庫(kù)之后,該數(shù)據(jù)庫(kù)不會(huì)自動(dòng)成為當(dāng)前數(shù)據(jù)庫(kù),需要用這條 USE 語(yǔ)句來(lái)指定。
 
注意:在 MySQL 中,每一條 SQL 語(yǔ)句都以“;”作為結(jié)束標(biāo)志。
 
mySQL 語(yǔ)法中不區(qū)分大小寫。創(chuàng)建數(shù)據(jù)庫(kù)的必須是系統(tǒng)管理員,或者擁有用戶級(jí)別的 create 權(quán)限。在安裝 MySQL 的過(guò)程中已經(jīng)創(chuàng)建了系統(tǒng)管理員,名為 root,假設(shè)密碼為 root。
 
3. 創(chuàng)建庫(kù)的同時(shí)指定字符集, 校對(duì)規(guī)則:
 
create database mydb character set utf8
 
collate utf8-general_ci;
 
character set:指定數(shù)據(jù)庫(kù)字符集(Charset),collate:指定字符集的校對(duì)規(guī)則
 
4. 修改數(shù)據(jù)庫(kù),只能改參數(shù)
 
數(shù)據(jù)庫(kù)創(chuàng)建后,如果需要修改數(shù)據(jù)庫(kù)的參數(shù),可以使用 alter database 命令。
 
語(yǔ)法格式:
 
alter {database | schema} [db_name]
 
   alter_specification [, alter_specification] …
 
其中 alter_specification: www.2cto.com  
 
[default] character set charset_name
 
   | [default] collate collation_name
 
說(shuō)明:
 
alter database 用于更改數(shù)據(jù)庫(kù)的全局特性,這些特性儲(chǔ)存在數(shù)據(jù)庫(kù)目錄中的 db.opt 文件中。用戶必須有對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改的權(quán)限,才可以使用 alterdatabase。修改數(shù)據(jù)庫(kù)的選項(xiàng)與創(chuàng)建數(shù)據(jù)庫(kù)相同,功能不再重復(fù)說(shuō)明。如果語(yǔ)句中數(shù)據(jù)庫(kù)名稱忽略,則修改當(dāng)前(默認(rèn))數(shù)據(jù)庫(kù)。
 
5. 刪除數(shù)據(jù)庫(kù)
 
drop database 庫(kù)名
 
drop database if exists 庫(kù)名(避免刪除不存在的數(shù)據(jù)庫(kù)時(shí)出現(xiàn)的 MySQL 錯(cuò)誤信息。)
 
注意:這個(gè)命令必須小心使用,因?yàn)樗鼘h除指定的整個(gè)數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)的所有表(包括其中的數(shù)據(jù))也將永久刪除。
 
6. 創(chuàng)建表
 
創(chuàng)建表就是創(chuàng)建表的結(jié)構(gòu):包含哪些字段(屬性),字段名,字段類型
 
create table 表名
 
(字段名 1 類型,
 
  字段名 2   類型,
 
。。。。
 
);
 
舉例:創(chuàng)建一個(gè)學(xué)生表  
 
use 庫(kù)名(確定你的表建在哪個(gè)庫(kù)中,把此庫(kù)變?yōu)楫?dāng)前數(shù)據(jù)庫(kù));
 
create table xs
  www.2cto.com  
(
 
       id int,
 
       name char(10),
 
       sex char(2)
 
);
 
Create [temporary] table [if not exists] tbl_name
 
   [( [column_definition] , … | [index_definition] ) ]
 
   [table_option] [select_statement];
 
說(shuō)明:
 
●  temporary:該關(guān)鍵字表示用 create 命令新建的表為臨時(shí)表。不加該關(guān)鍵字創(chuàng)建的表通常稱為持久表,在數(shù)據(jù)庫(kù)中持久表一旦創(chuàng)建將一直存在,多個(gè)用戶或者多個(gè)應(yīng)用程序可以同時(shí)使用持久表。有時(shí)候需要臨時(shí)存放數(shù)據(jù),例如,臨時(shí)存儲(chǔ)復(fù)雜的 select 語(yǔ)句的結(jié)果。此后,可能要重復(fù)地使用這個(gè)結(jié)果,但這個(gè)結(jié)果又不需要永久保存。這時(shí),可以使用臨時(shí)表。用戶可以像操作持久表一樣操作臨時(shí)表。只不過(guò)臨時(shí)表的生命周期較短,而且只能對(duì)創(chuàng)建它的用戶可見,當(dāng)斷開與該數(shù)據(jù)庫(kù)的連接時(shí),MySQL 會(huì)自動(dòng)刪除它們。
 
●   創(chuàng)建表時(shí)也可使用 if not exists 語(yǔ)句來(lái)判斷創(chuàng)建的表是否已存在,避免出現(xiàn)錯(cuò)誤。
 
●   要?jiǎng)?chuàng)建的表的表名(tbl_name)必須符合標(biāo)志符規(guī)則,如果有 MySQL 保留字必須用單引號(hào)括起來(lái)。
 
●  column_definition:列定義,包括列名、數(shù)據(jù)類型,可能還有一個(gè)空值聲明和一個(gè)完整性約束。
 
●  index_definition:表索引項(xiàng)定義,主要定義表的索引、主鍵、外鍵等,具體定義將在后面討論。 www.2cto.com  
 
●  table_option:用于描述表的選項(xiàng)。
 
●  select_statement:可以在 create table 語(yǔ)句的末尾添加一個(gè) select 語(yǔ)句,在一個(gè)表的基礎(chǔ)上創(chuàng)建表
 
7. 修改表結(jié)構(gòu):增加字段   修改舊字段   刪除字段
 
alter table 表名
 
add 字段名 類型(寬度)        // 增加字段
 
modify 舊字段 類型             // 修改舊字段
 
drop 字段名                   // 刪除字段
 
change 舊字段名 新字段內(nèi)容     // 改列名
 
order by col_name            // 排序
 
 convert  to character set charset_name [字符集名]    // 將字符集轉(zhuǎn)換為二進(jìn)制
 
 [default]character set charset_name [字符集名]   // 修改默認(rèn)字符集
 
舉例:在學(xué)生表中增加 birthday 字段、修改 name 字段、修改字段 name 的名;
 
alter table xs
 
add birthday date;
  www.2cto.com  
modify name varchar(20);
 
change name sname varchar(20);
 
8. 修改表名
 
rename table 舊名 to 新名
 
分類
 
數(shù)據(jù)類型
 
說(shuō)明
 
數(shù)值類型
 
bit (M)
 
tinint [unsigned] [zerofill]
 
bool,boolean 
 
smallint [unsigned] [zerofill]
 
int [unsigned] [zerofill]
 
bigint [unsigned] [zerofill]
 
float[(M,D)][unsigned][zerofill]  
 
double[(M,D)][unsigned][zerofill]  
 
位類型。M 指定位數(shù),默認(rèn)值 1,范圍 1 -64
 
帶符號(hào)的范圍是 -128 到 127。無(wú)符號(hào) 0 到 255。
  www.2cto.com  
使用 0 或 1 表示真或假
 
2 的 16 次方
 
2 的 32 次方
 
2 的 64 次方
 
M 指定顯示長(zhǎng)度,d 指定小數(shù)位數(shù)
 
表示比 float 精度更大的小數(shù)
 
文本、二進(jìn)制類型
 
char(size) char(20)
 
varchar(size)  varchar(20)
 
blob    longblob
 
text(clob)    longtext(longclob)
 
固定長(zhǎng)度字符串
 
可變長(zhǎng)度字符串
 
二進(jìn)制數(shù)據(jù)
 
大文本
 
時(shí)間日期
 
date/datetime/TimeStamp
 
日期類型 (YYYY-MM-DD)  (YYYY-MM-DD HH:MM:SS),TimeStamp 表示時(shí)間戳,它可用于自動(dòng)記錄 insert、update 操作的時(shí)間
 
注意:在字符數(shù)據(jù)類型和數(shù)值數(shù)據(jù)類型之后,MySQL 允許指定一個(gè)數(shù)據(jù)類型選項(xiàng)用來(lái)改變數(shù)據(jù)類型的屬性和功能。
 
對(duì)于字符數(shù)據(jù)類型,MySQL 支持兩種數(shù)據(jù)類型選項(xiàng):characterset 和 collate。如果要區(qū)分字符的大小寫情況,可以在字符類型后面加上 bingary。
 
對(duì)于除 bit 以外的數(shù)值數(shù)據(jù)類型,MySQL 允許添加一個(gè)或多個(gè)數(shù)據(jù)類型選項(xiàng)。unsigned:不允許負(fù)值。zerofill:當(dāng)插入的值長(zhǎng)度小于字段設(shè)定的長(zhǎng)度時(shí),剩余部分用 0 填補(bǔ)。
 
與 int 有關(guān)的類型與 java 中的 bit、short、int、long 分別對(duì)應(yīng)。
 
varchar、bolb 和 text 類是變長(zhǎng)類型。每個(gè)類型的存儲(chǔ)需求取決于列值的實(shí)際長(zhǎng)度。
 
9.   列定義 column_definition 格式如下:
 
col_name  type  [not null | null] [default default_value]
 
   [auto_increment] [unique [key] | [primary] key]
 
   [comment string] [reference_definition]
 
說(shuō)明: www.2cto.com  
 
●  col_name:表中列的名字。列名必須符合標(biāo)志符規(guī)則,長(zhǎng)度不能超過(guò) 64 個(gè)字符,而且在表中要唯一。如果有 MySQL 保留字必須用單引號(hào)括起來(lái)。
 
●  type:列的數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明長(zhǎng)度 n,并用括號(hào)括起,MySQL 支持的數(shù)據(jù)類型在附錄 C 中介紹。
 
●  auto_increment:設(shè)置自增屬性,只有整型列才能設(shè)置此屬性。當(dāng)插入 null 值或 0 到一個(gè) auto_increment 列中時(shí),列被設(shè)置為 value+1,在這里 value 是此前表中該列的最大值。auto_increment 順序從 1 開始。每個(gè)表只能有一個(gè) auto_increment 列,并且它必須被索引。
 
● not null | null:指定該列是否允許為空。如果不指定,則默認(rèn)為 null。
 
●  default default_value:為列指定默認(rèn)值,默認(rèn)值必須為一個(gè)常數(shù)。其中,BLOB 和 TEXT 列不能被賦予默認(rèn)值。如果沒(méi)有為列指定默認(rèn)值,MySQL 自動(dòng)地分配一個(gè)。如果列可以取 NULL 值,默認(rèn)值就是 NULL。如果列被聲明為 NOT NULL,默認(rèn)值取決于列類型:
 
(1)對(duì)于沒(méi)有聲明 auto_increment 屬性的數(shù)字類型,默認(rèn)值是 0。對(duì)于一個(gè) auto_increment 列,默認(rèn)值是在順序中的下一個(gè)值。
 
(2)對(duì)于除 timestamp 以外的日期和時(shí)間類型,默認(rèn)值是該類型適當(dāng)?shù)摹傲恪敝怠?duì)于表中第一個(gè) timestamp 列,默認(rèn)值是當(dāng)前的日期和時(shí)間。
 
(3)對(duì)于除 enum 的字符串類型,默認(rèn)值是空字符串。對(duì)于 enum,默認(rèn)值是第一個(gè)枚舉值。
 
●  unique key | primary key:兩者都表示字段中的值是唯一的。primary key 表示設(shè)置為主鍵,一個(gè)表只能定義一個(gè)主鍵,主鍵一定要為 notnull。
 
●  comment string:對(duì)于列的描述,string 是描述的內(nèi)容。
 
●  reference_definition:指定參照的表和列。
 
10. (1). 復(fù)制表 : create table 表名 like 表名 1
 
語(yǔ)法格式:
 
create [temporary] table[if not exists] tbl_name
 
    [()like old_ name []]
 
    | [as (select_statement)] ;
 
說(shuō)明:
 
使用 LIKE 關(guān)鍵字創(chuàng)建一個(gè)與 old _name 表相同結(jié)構(gòu)的新表,列名、數(shù)據(jù)類型、空指定和索引也將復(fù)制,但是表的內(nèi)容不會(huì)復(fù)制,因此創(chuàng)建的新表是一個(gè)空表。使用 as 關(guān)鍵字可以復(fù)制表的內(nèi)容,但索引和完整性約束是不會(huì)復(fù)制的。select_statement 表示一個(gè)表達(dá)式,例如,可以是一條 select 語(yǔ)句。
 
(2). 刪除表 : drop table 表名(這個(gè)命令將表的描述、表的完整性約束、索引及和表相關(guān)的權(quán)限等都全部刪除) www.2cto.com  
 
(3). 修改表名 : rename 子句,語(yǔ)法格式:
 
rename table old_name to new_name
 
new_tbl_name 是新表名。例如,將表 a 改名為 b:alter table  a rename to b ; 除了上面的 alter table 命令,還可以直接用 renametable 語(yǔ)句來(lái)更改表的名字。
 
●  order by 子句 (以后介紹):用于在創(chuàng)建新表時(shí),讓各行按一定的順序排列。注意,在插入和刪除后,表不會(huì)仍保持此順序。在對(duì)表進(jìn)行了大的改動(dòng)后,通過(guò)使用此選項(xiàng),可以提高查詢效率。在有些情況下,如果表按列排序,對(duì)于 MySQL 來(lái)說(shuō),排序可能會(huì)更簡(jiǎn)單。
 
●  table_options:修改表選項(xiàng),具體定義與 create table 語(yǔ)句中一樣。
 
可以在一個(gè) alter table 語(yǔ)句里寫入多個(gè) add、alter、drop 和 chang 子句,中間用逗號(hào)分開。這是 MySQL 相對(duì)于標(biāo)準(zhǔn) SQL 的擴(kuò)展。在標(biāo)準(zhǔn) SQL 中,每個(gè) alter table 語(yǔ)句中每個(gè)子句只允許使用一次。
 
11. 說(shuō)明:表中大多數(shù)的選項(xiàng)涉及的是表數(shù)據(jù)如何存儲(chǔ)及存儲(chǔ)在何處。多數(shù)情況下,不必指定表選項(xiàng)。engine 選項(xiàng)是定義表的存儲(chǔ)引擎,具體在附錄 E 中介紹。
 
舉例:
 
USE mydb1;
 
CREATE TABLE XS
 
(
 
    學(xué)號(hào)      char(6)    NOTNULL  primary KEY,
 
    姓名      char(8)    NOTNULL ,
 
專業(yè)名  char(10)  NOT NULL ,
 
性別    tinyint(1) NOT NULL default  1
 
) engine=InnoDB;
 
說(shuō)明:“primary KEY”表示將“學(xué)號(hào)”字段定義為主鍵。“default 1”表示“性別”的默認(rèn)值為 1。“engine=InnoDB”表示采用的存儲(chǔ)引擎是 InnoDB,InnoDB 是 MySQL 在 Windows 平臺(tái)默認(rèn)的存儲(chǔ)引擎,所以“engine=InnoDB”可以省略。
 
12. 說(shuō)明:
 
●  ignore:是 MySQL 相對(duì)于標(biāo)準(zhǔn) SQL 的擴(kuò)展。若在修改后的新表中存在重復(fù)關(guān)鍵字,如果沒(méi)有指定 ignore,當(dāng)重復(fù)關(guān)鍵字錯(cuò)誤發(fā)生時(shí)操作失敗。如果指定了 ignore,則對(duì)于有重復(fù)關(guān)鍵字的行只使用第一行,其他有沖突的行被刪除。
 
●  column_definition:定義列的數(shù)據(jù)類型和屬性,具體內(nèi)容在 create table 的語(yǔ)法中已做說(shuō)明。
 
●  first| after col_name:表示在某列的前或后添加,不指定則添加到最后。
 
注意: 若表中該列所存數(shù)據(jù)的數(shù)據(jù)類型與將要修改的列的類型沖突,則發(fā)生錯(cuò)誤。例如,原來(lái) char 類型的列要修改成 int 類型,而原來(lái)列值中有字符型數(shù)據(jù)“a”,則無(wú)法修改。
 
13.   1).   空值 (NULL) 概念
 
空值通常表示未知、不可用或?qū)⒃谝院筇砑拥臄?shù)據(jù)。若一個(gè)列允許為空值,則向表中輸入記錄值時(shí)可不為該列給出具體值;而一個(gè)列若不允許為空值,則在輸入時(shí)必須給出該列的具體值。
 
注意:表的關(guān)鍵字不允許為空值。空值不能與數(shù)值數(shù)據(jù) 0 或字符類型的空字符混為一談。任意兩個(gè)空值都不相等。 www.2cto.com  
 
2).   列的 IDENTITY(標(biāo)志)屬性
 
對(duì)任何表都可創(chuàng)建包含系統(tǒng)所生成序號(hào)值的一個(gè)標(biāo)志列,該序號(hào)值唯一標(biāo)志表中的一列,可以作為鍵值。每個(gè)表只能有一個(gè)列設(shè)置為標(biāo)志屬性,該列只能是 decimal、int、numeric、smallint、bigint 或 tinyint 數(shù)據(jù)類型。定義標(biāo)志屬性時(shí),可指定其種子(即起始)值、增量值,二者的默認(rèn)值均為 1。系統(tǒng)自動(dòng)更新標(biāo)志列值,標(biāo)志列不允許空值。
 
在下列情況下,MySQL 隱含地改變?cè)谝粋€(gè) CREATE TABLE 語(yǔ)句給出的一個(gè)列類型(這也可能在 ALTER TABLE 語(yǔ)句上出現(xiàn))。
 
14.MySQL 隱含地改變列類型:
 
(1)長(zhǎng)度小于 4 的 varchar 被改變?yōu)?char。
 
(2)如果在一個(gè)表中的任何列有可變長(zhǎng)度,結(jié)果使整個(gè)行是變長(zhǎng)。
 
因此,如果一張表包含任何變長(zhǎng)的列(varchar、text 或 Blob),所有大于 3 個(gè)字符的 char 列被改變?yōu)?varchar 列。這在任何方面都不影響用戶如何使用列。在 MySQL 中這種改變可以節(jié)省空間并且使表操作更快捷。
 
(3)timestamp 的顯示尺寸必須是偶數(shù)且在 2~14 的范圍內(nèi)。如果指定 0 顯示尺寸或比 14 大,尺寸被強(qiáng)制為 14。從 1~13 范圍內(nèi)的奇數(shù)值尺寸被強(qiáng)制為下一個(gè)更大的偶數(shù)。
 
(4)不能在一個(gè) timestamp 列里面存儲(chǔ)一個(gè) NULL,將它設(shè)為 NULL 默認(rèn)為當(dāng)前的日期和時(shí)間。
 
如果想要知道 MySQL 是否使用了除指定的以外的一種列類型,在創(chuàng)建表之后,使用一個(gè) DESCRIBE 語(yǔ)句即可。DESCRIBE 語(yǔ)句在 3.1.4 節(jié)介紹。
 
15 type 定義如下:
 
說(shuō)明:在字符數(shù)據(jù)類型和數(shù)值數(shù)據(jù)類型之后,MySQL 允許指定一個(gè)數(shù)據(jù)類型選項(xiàng)用來(lái)改變數(shù)據(jù)類型的屬性和功能。
 
對(duì)于字符數(shù)據(jù)類型,MySQL 支持兩種數(shù)據(jù)類型選項(xiàng):CHARACTERSET 和 COLLATE。如果要區(qū)分字符的大小寫情況,可以在字符類型后面加上 BINGARY。
 
對(duì)于除 BIT 以外的數(shù)值數(shù)據(jù)類型,MySQL 允許添加一個(gè)或多個(gè)數(shù)據(jù)類型選項(xiàng)。UNSIGNED:不允許負(fù)值。ZEROFILL:當(dāng)插入的值長(zhǎng)度小于字段設(shè)定的長(zhǎng)度時(shí),剩余部分用 0 填補(bǔ)。
 
spatial_type 是空間類型數(shù)據(jù)。
 
16.   表選項(xiàng) table_option 定義如下:
 
{engine | type} = engine_name             // 存儲(chǔ)引擎
 
| auto_increment = value               // 初始值
 
| auto_increment = value               // 表的平均行長(zhǎng)度
 
| [default] charcter set charset_name [collatecollation_name]  // 默認(rèn)字符集和校對(duì)
 
| checksum = {0 | 1}              // 設(shè)置為 1 表示求校驗(yàn)和
 
| comment= string               // 注釋
 
| connection = connect_string     // 連接字符串
 
| MAX_ROWS = value               // 行的最大數(shù)
 
| MIN_ROWS = value               // 列的最小數(shù)
 
| PACK_KEYS = {0 | 1 | DEFAULT}
 
| password = string               // 對(duì).frm 文件加密
 
| delay_key_write = {0 | 1}           // 對(duì)關(guān)鍵字的更新
 
|row_format={DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}                     // 定義各行應(yīng)如何儲(chǔ)存  www.2cto.com  
 
| union = (tbl_name[,tbl_name]…)    // 表示哪個(gè)表應(yīng)該合并
 
| insert_method = {NO | FIRST | LAST}// 是否執(zhí)行 INSERT 語(yǔ)句
 
|data directory = absolute path todirectory     // 數(shù)據(jù)文件的路徑
 
| index directory = absolute path todirectory rsquo; // 索引的路徑
 

到此,相信大家對(duì)“MySQL 用命令行方式建庫(kù)和表”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-01發(fā)表,共計(jì)7767字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 阿鲁科尔沁旗| 桦川县| 固原市| 黄骅市| 安仁县| 交城县| 洛川县| 鄢陵县| 黎平县| 仲巴县| 禄劝| 嘉黎县| 和政县| 彰化县| 循化| 大埔县| 连城县| 乌拉特前旗| 太谷县| 航空| 璧山县| 建德市| 永登县| 庄河市| 高州市| 承德市| 广安市| 浑源县| 保山市| 牙克石市| 汉中市| 从江县| 读书| 大石桥市| 保山市| 乳山市| 遂昌县| 增城市| 韶山市| 高青县| 江西省|