mysql數據表的基本操作

1. 使用主鍵約束

主鍵約束要求主鍵列的數據唯一,並且不允許爲空。
1). 單字段主鍵

語法: 字段名 數據類型 PRIMARY KEY [默認值]
mysql> create database  test01; #創建庫
Query OK, 1 row affected (0.00 sec)

mysql> use test01; #進入所創建的庫
Database changed
mysql> create table test1 
    -> (
    -> id INT(11) PRIMARY KEY,
    -> name VARCHAR(25), 
    -> deptID INT(11),
    -> salary FLOAT
    -> ); 
Query OK, 0 rows affected (0.04 sec)

查看數據表的結構 DESCRIBE 表名; 或 DESC 表名;
mysql數據表的基本操作
2). 在定義完所有列之後指定主鍵

語法:[CONSTRAINT <約束名>] PRIMARY KEY [字段名]
mysql> create table test2
    -> (
    -> id INT(11), 
    -> name VARCHAR(25), 
    -> deptID INT(11),
    -> salary FLOAT, 
    -> PRIMARY KEY(id)
    -> ); 
Query OK, 0 rows affected (0.00 sec)

mysql數據表的基本操作
3). 多字段聯合主鍵

語法:PRIMARY KEY [字段1,字段2,....]
mysql> create table test3 
    -> (
      -> id INT(11),
        -> name VARCHAR(25),
    -> deptID INT(11),
    -> salary FLOAT,
    -> PRIMARY KEY(id)
    -> );
        Query OK, 0 rows affected (0.00 sec)

mysql數據表的基本操作

2.設置表的屬性值自動增加

語法:字段名 數據類型 AUTO_INCREMENT
mysql> create table test5
    -> (
    ->  id INT(11) PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(25) NOT NULL,
    ->  deptId INT(11),
    -> salary FLOAT
    -> ); 
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO test5(name,salary)
 -> VALUES('lucy',1000),('lura',1200),('kevin',1500);
 mysql>  SELECT * FROM test5;
+----+-------+--------+--------+
| id | name  | deptId | salary |
+----+-------+--------+--------+
|  1 | lucy  |   NULL |   1000 |
|  2 | lura  |   NULL |   1200 |
|  3 | kevin |   NULL |   1500 |
+----+-------+--------+--------+
3 rows in set (0.00 sec)

3.查看錶的詳細結構語句
語法:SHOW CREATE TABLE <表名\G>
mysql數據表的基本操作
4.修改數據表名
語法:ALTER TABLE <舊錶名> RENAME [TO] <新表名>.
mysql數據表的基本操作
5.修改字段的數據類型
語法:ALTER TABLE <表名> MODIFY <字段名> <數據類型>
mysql數據表的基本操作
6.修改字段名
語法:ALTER TABLE <表名> CHANGE<舊字段名><新字段名> <新數據類型>
mysql數據表的基本操作
7. 添加字段
語法:ALTER TABLE <表名> ADD <新字段名><數據類型> [約束條件] [FIRST|AFTER 已存在字段名]

mysql> desc test2; 
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | NULL    |       |
| name11 | varchar(30) | YES  |     | NULL    |       |
| deptID | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> ALTER TABLE test2 ADD column1 VARCHAR(12) not null;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test2;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int(11)     | NO   | PRI | NULL    |       |
| name11  | varchar(30) | YES  |     | NULL    |       |
| deptID  | int(11)     | YES  |     | NULL    |       |
| salary  | float       | YES  |     | NULL    |       |
| column1 | varchar(12) | NO   |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

也可以這樣:
mysql數據表的基本操作
8.刪除字段
mysql> ALTER TABLE tb_dept1 DROP column2;
mysql數據表的基本操作
9.修改字段的排列位置
語法:ALTER TABLE <表名> MODIFY <字段名> <數據類型> FIRST | AFTER <字段2>

mysql數據表的基本操作
10.更改表的存儲引擎
mysql數據表的基本操作
11.刪除表的外鍵約束
語法:ALTER TABLE <表名> DROP FOREIGN KEY <外鍵約束名>

mysql> create table test6 
    -> (
    ->  id INT(11) PRIMARY KEY,
    ->  name VARCHAR(25),
    -> deptID INT(11),
    -> salary FLOAT,
    -> CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES test1(id)
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> show create table test6\g
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                                                                |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test6 | CREATE TABLE `test6` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptID` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptID`),
  CONSTRAINT `fk_emp_dept` FOREIGN KEY (`deptID`) REFERENCES `test1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> ALTER TABLE test6 DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table test6\g                                                                                                                     
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                   |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| test6 | CREATE TABLE `test6` (
  `id` int(11) NOT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptID` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_emp_dept` (`deptID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

12.刪除數據表
語法:DROP TABLE [IF EXISTS]表1,表2

1)先創建ts3
mysql> create table  ts3 
    -> (
    -> id INT(11) PRIMARY KEY,
    ->  name VARCHAR(22),
    -> location VARCHAR(50)
    -> );
Query OK, 0 rows affected (0.01 sec)
2)創建test7
mysql> create table test7 
    -> (
    ->  id INT(11) PRIMARY KEY,
    ->  name VARCHAR(25),
    -> deptId INT(11),
    ->  salary FLOAT,
    ->  CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES ts3(id)
    -> );
Query OK, 0 rows affected (0.00 sec)

3)直接刪除父表ts3
mysql數據表的基本操作
就可以看見在外鍵的約束時,主表不能直接刪除。
4)解除關聯子表test7的外鍵約束

mysql>  ALTER TABLE test7 DROP FOREIGN KEY fk_emp_dept;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

5)這樣主表就可以刪除了

mysql> drop table ts3;
Query OK, 0 rows affected (0.01 sec)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章