[Mysql] 5.Mysql 建立表
C:\Users\admin>mysql -h localhost -u root -pmysql
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.14 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydata |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
6 rows in set (0.00 sec)
mysql> use mydata
Database changed
mysql> create table mydata1(
-> id int,
-> name varchar(20),
-> sex boolean
-> );
Query OK, 0 rows affected (0.36 sec)
mysql> desc mydata1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
mysql> show tables;
+------------------+
| Tables_in_mydata |
+------------------+
| mydata1 |
+------------------+
1 row in set (0.00 sec)
5.1 完整性約束條件
Primary key |
主鍵,標識唯一 |
Foreign key |
標識該屬性為該表的外來鍵,聯絡表的主鍵 |
Not null |
屬性不能為空 |
Unique |
屬性的值是唯一的 |
Auto_increment |
值自動增加 ,mysql 的 sql 語句的特色 |
Default |
列設定預設值 |
5.2 主鍵
單欄位主鍵和多欄位主鍵
mysql> create table mydata2(
-> id int primary key , # 單一欄位主鍵
-> name varchar(20),
-> sex boolean);
Query OK, 0 rows affected (0.23 sec)
mysql> show tables;
+------------------+
| Tables_in_mydata |
+------------------+
| mydata1 |
| mydata2 |
+------------------+
2 rows in set (0.00 sec)
mysql> desc mydata2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> alter table mydata2 drop primary key;
Query OK, 0 rows affected (0.68 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc mydata2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> alter table mydata2 add primary key(id,name) ; # 設定多欄位主鍵
Query OK, 0 rows affected (0.49 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc mydata2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
也可以在 create table 定義中定義 primary key
mysql> create table mydata3(
-> id int,
-> name varchar(20),
-> sex boolean,
-> primary key(id,name)
-> );
Query OK, 0 rows affected (0.24 sec)
mysql> desc mydata3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
5.3 外來鍵 foreign key
mysql> create table mydata4(
-> id int primary key,
-> name varchar(30),
-> sex boolean,
-> constraint my_fk foreign key(id) references mydata3(id)
-> );
Query OK, 0 rows affected (0.26 sec)
mysql> desc mydata4;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(30) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
5.4 not null 非空
mysql> create table mydata5(
-> id int primary key,
-> name varchar(20) not null);
Query OK, 0 rows affected (0.28 sec)
mysql> desc mydata5;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
5.5 unique 唯一性
mysql> create table mydata6(
-> id int primary key,
-> name varchar(20) unique);
Query OK, 0 rows affected (0.35 sec)
mysql> desc mydata6;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | UNI | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
5.6 auto_increment
必須為主鍵的一部分
mysql> create table mydata7(
-> id int primary key auto_increment,
-> name varchar(20))
-> ;
Query OK, 0 rows affected (0.24 sec)
mysql> desc mydata7;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
5.7 預設值
mysql> create table mydata8(
-> id int primary key auto_increment,
-> name varchar(20) unique,
-> address varchar(100) not null,
-> city varchar(20) default 'suzhou',
-> socre float default 0);
Query OK, 0 rows affected (0.35 sec)
mysql> desc mydata8;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | UNI | NULL | |
| address | varchar(100) | NO | | NULL | |
| city | varchar(20) | YES | | suzhou | |
| socre | float | YES | | 0 | |
+---------+--------------+------+-----+---------+----------------+
5 rows in set (0.04 sec)
5.8 檢視錶結構
mysql> show create table mydata1 \G;
*************************** 1. row ***************************
Table: mydata1
Create Table: CREATE TABLE `mydata1` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`sex` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
ERROR:
No query specified
mysql> desc mydata1;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
| sex | tinyint(1) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
5.9 修改表結構
mysql> alter table mydata1 rename to mydata; # 修改表名
Query OK, 0 rows affected (0.23 sec)
mysql> alter table mydata1 modify sex varchar(1); # 修改列屬性
Query OK, 0 rows affected (0.77 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 change city address varchar(20);
mysql> alter table mydata1 change sex city int; # 修改列名和屬性
Query OK, 0 rows affected (0.94 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 add city int; # 新增列名
Query OK, 0 rows affected (0.53 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 add sal int after address; # 在 address 欄位後面加列
Query OK, 0 rows affected (0.35 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 add uid int first; # 加列為首列
Query OK, 0 rows affected (0.45 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 drop city; # 刪除列
Query OK, 0 rows affected (0.50 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 modify sal int after name; # 修改列的位置
Query OK, 0 rows affected (0.53 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table mydata1 modify id int first; # 修改為首列
Query OK, 0 rows affected (0.54 sec)
Records: 0 Duplicates: 0 Warnings: 0
CHANGE 對列進行重新命名或更改列的型別,需給定舊的列名稱和新的列名稱、當前的型別 MODIFY 可以改變列的型別,此時不需要重新命名(不需給定新的列名稱)
mysql> alter table mydata1 engine=myisam; # 修改表的儲存引擎
Query OK, 0 rows affected (1.47 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> drop table mydata8; # 刪除表
Query OK, 0 rows affected (0.22 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24237320/viewspace-2125882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 5.MySQL 基礎結構MySql
- mysql 建立臨時表MySql
- [MYSQL][1]建立,修改,刪除表MySql
- MySQL建立表的時候建立聯合索引的方法MySql索引
- MySQL建立資料表並建立主外來鍵關係MySql
- mysql建立表時反引號的作用MySql
- mysql建立表的時候對欄位和表新增COMMENTMySql
- mysql透過計劃任務建立月表MySql
- 使用AnalyticDB MySQL建立資料庫及表過程MySql資料庫
- 一個文章表的 MySQL 索引怎麼建立合理MySql索引
- Access建立表/新建表
- mysql指令1:增刪改庫,資料型別,建立表MySql資料型別
- SqlSugarClient 程式碼優先建表, 根據給定的實體類,建立SQL語句, 之後建立MySQL表SqlSugarclientMySql
- orcl建立表及管理表
- 在 mysql 下 建立新的資料庫和對應的表MySql資料庫
- 初始mysql以及建立MySql
- MySql建立分割槽MySql
- mysql建立字首索引MySql索引
- SQL表的建立SQL
- Mysql建立資料庫MySql資料庫
- MySQL索引建立原則MySql索引
- 06 建立MySQL連線MySql
- mysql使用者建立MySql
- 建立MySQL觸發器MySql觸發器
- MySQL建立表失敗:Index column size too large. The maximum column size is 767 bytesMySqlIndex
- 16、表空間 建立表空間
- 建立資料庫表資料庫
- 建立SQL資料表SQL
- ORM建立表關係ORM
- 建立和操縱表
- Qt QChart 建立圖表QT
- laravel 建立資料表Laravel
- 建立Parquet結果表
- Oracle OCP(20):建立表Oracle
- MySQL 回表MySql
- MySQL表鎖MySql
- MySQL -- 表鎖MySql
- mysql/mariadb學習記錄——建立刪除資料庫、表的基本命令MySql資料庫
- mysql 建立定時任務MySql