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

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