MySQL 參數(shù)
????參數(shù) |
描述 |
備注 |
-D,--database=、name |
打開指定數(shù)據(jù)庫 |
mysql –uroot –procky –Dhisdb 或者mysql –uroot –procky --database=hisdb root:用戶名rocky:密碼hisdb:數(shù)據(jù)庫名稱 |
--delimiter=name |
指定分隔符 |
? |
-h, --host=name |
指定服務(wù)器名稱 |
同上,本地服務(wù)器可以用127.0.0.1或者localhost |
-p, --password=name |
密碼 |
mysql –uroot –procky 或者mysql –uroot --password=rocky |
-P, --port=# |
端口號(hào) |
默認(rèn)是端口號(hào)是my.ini配置中的數(shù)字 |
--prompt=name |
設(shè)置提示符 |
登陸后也可以使用prompt [提示符]的方法修改提示符 |
-u, --user=name |
用戶名 |
同上 |
-V, --version |
輸出版本信息并且退出 |
? |
備注:所有參數(shù)注意大小寫
MySQL 退出
????登陸到mysql 后。輸入以下命令即可退出mysql
mysql > exit;
mysql > quit;
mysql > \q;
MySQL 提示符參數(shù)
參數(shù) |
描述 |
\D |
完整日期 |
\d |
當(dāng)前數(shù)據(jù)庫名稱 |
\h |
當(dāng)前服務(wù)器名稱 |
\u |
當(dāng)前用戶 |
MySQL 常用命令
命令 |
描述 |
SELECT VERSION() |
顯示當(dāng)前服務(wù)器的版本號(hào) |
SELECT NOW() |
顯示當(dāng)前日期 |
SELECT USER() |
顯示當(dāng)前用戶 |
SHOW {DATABASES|SCHEMAS} [LIKE 'pattern' | WHERE expr |
查看當(dāng)前服務(wù)器的數(shù)據(jù)庫列表 |
SHOW WARNINGS |
查看警告信息 |
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name |
修改數(shù)據(jù)庫的編碼方式 |
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name |
刪除數(shù)據(jù)庫 |
SHOW DATABASES |
顯示數(shù)據(jù)庫 |
SHOW TABLES [FROM db_name] |
顯示數(shù)據(jù)表 |
SHOW COLUMNS FROM tb_name |
查看數(shù)據(jù)表的結(jié)構(gòu) |
MySQL 語句規(guī)范
- 關(guān)鍵字與函數(shù)名稱全部大寫
- 數(shù)據(jù)庫名稱、表名稱、字段名稱全部小寫
- SQL語句必須以分號(hào)結(jié)尾
創(chuàng)建數(shù)據(jù)庫
????格式:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] chartset_name
????范例:CREATE DATABASE hisdb;
????說明:DATABASE 和SCHEMA完全相同,任選其一即可。
????????IF NOT EXISTS 假設(shè)創(chuàng)建的數(shù)據(jù)庫存在,就不創(chuàng)建
????????DEFAULT CHARACTER 數(shù)據(jù)庫的編碼方式。
修改數(shù)據(jù)表
添加單列
????ALTER TABLE tbl_name ADD [COLUMN] col_name column_definiton [FIRST | AFTER col_name]
????FIRST表示新添加的列位于最前面,AFTER col_name表示在某一列后面,默認(rèn)添加到最后一列
添加多列
????ALTER TABLE tbl_name ADD [COLUMN] (col_name column_difinition, col_name column_difinition);
刪除列
????ALTER TABLE tbl_name DROP col_name
修改列定義
????ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST|AFTER colname]
修改列名稱
????ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name column_definition [FRIST|AFTER col_name]
修改數(shù)據(jù)表名稱
- ALTER TABLE tbl_name RENAME [TO|AS] new_tbl_name
- RENAME TABLE tbl_name TO new_tbl_name [,tbl_name2 TO new_tbl_nme]…
自動(dòng)編號(hào)
????自動(dòng)編號(hào)必須跟主鍵組合使用,默認(rèn)情況下,起始值為1,增量為1.
主鍵
????主鍵約束
????每張數(shù)據(jù)表只能存在一個(gè)主鍵
????主鍵保證記錄的唯一性
????主鍵自動(dòng)為NOT NULL????
CREATE TABLE tb2 ( id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL);
唯一約束
????唯一約束可以保證記錄的唯一性
????唯一約束的字段可以為空
????每張表中可以存在多個(gè)唯一約束
CREATE TABLE tb3 (id SMALLINT UNSIGNED UNIQUE KEY,
???????? username VARCHAR(20) NOT NULL);
默認(rèn)值
????當(dāng)插入記錄時(shí),如果沒有明確為字段賦值,則自動(dòng)賦予默認(rèn)值
約束
????約束保證了數(shù)據(jù)的完整性和一致性
????約束分為表級(jí)約束和列級(jí)約束。表級(jí)約束表示約束兩個(gè)或兩個(gè)以上的字段列級(jí)約束表示約束一個(gè)字段,表級(jí)約束只能在列定義后聲明
????約束類型:
????????NOT NULL 非空約束 不存在表級(jí)約束,只有列級(jí)約束
????????PRIMARY KEY 主鍵約束
????????UNIQUE KEY 唯一約束
????????DEFAULT 默認(rèn)約束 不存在表級(jí)約束,只有列級(jí)約束
????????POREIGN KEY 外鍵約束
外鍵約束
外鍵約束的條件
- 父表和子表必須使用相同的存儲(chǔ)引擎,而且禁止使用臨時(shí)表。子表具有外鍵列的表,子表所參照的表稱為父表。
- 數(shù)據(jù)表的存儲(chǔ)引擎只能為InnoDB。
- 外鍵列和參照列必須具有相同的數(shù)據(jù)類型,其中數(shù)字的長度或是否有符號(hào)位必須相同,而字符串的長度則可以不同。
- 外鍵列和參照列必須創(chuàng)建索引,如果外鍵列不存在索引的話MySQL將自動(dòng)創(chuàng)建索引。參照列不會(huì)自動(dòng)創(chuàng)建索引。
范例:
????父表的創(chuàng)建:CREATE TABLE province ( id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20) NOT NULL);
????子表的創(chuàng)建:CREATE TABLE city (id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT,name VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province (id));
外鍵約束的參照操作
-
CASCADE:從父表刪除或更新且自動(dòng)刪除或更新子表中匹配的行
- 例如:CREATE TABLE city (id SMALLINT UNSIGNED PRIMARY KEY AUTOINCREMENT,name VARCHAR(20) NOT NULL, pid SMALLINT UNSIGNED, FOREIGN KEY (pid) REFERENCES province (id) ON DELETE CASCADE);
- SET NULL:從父表刪除或更新行,并設(shè)置子表中的外鍵列為NULL,如果使用該選項(xiàng),必須保證子表列沒有指定的NOT NULL
- RESTRICT:拒絕對父表的刪除或更新操作
- NO ACTION:標(biāo)準(zhǔn)SQL的關(guān)鍵字,在MySQL中與RESTRICT相同
修改約束
添加約束
????ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,……)
????CONSTARINT是給約束起名稱,可不加
刪除約束
????ALTER TABLE tabl_name DROP {INDEX|KEY} index_name
INSERT
????INSERT [INTO] tbl_name [(tbl_column,…)] {VALUES|VALUE} (expr|DEFAULT,…),(……)
????INSERT [INTO] tbl_name SET col_name={expr | DEFAULT},…
????INSERT [INTO] tbl_name [(col_name,…)] SELECT…
UPDATE 單表更新
????UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1 |DEFAULT}[,col_name2={expr2 | DEFAULT}]..[WHERE where_condition]
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
