MySQL使用入門--DDL語句


 DDL 語句

1、創建數據庫

CREATE DATABASE dbname;

  查看已經存在的數據庫

SHOW DATABASES;

  選擇數據庫

USE dbname;

  查看數據庫中的表

SHOW TABLES;

 2、刪除數據庫

DROP DATABASE dbname;

3、創建表

CREATE TABLE tablename(column_name_1 column_type_1 constraints,
column_name_2 column_type_2 constraints,
......
column_name_n column_type_n constraints);

  查看表

DESC tablename;

  查看創建表的SQL語句

SHOW CREATE TABLE tablename \G

4、刪除表

DROP TABLE tablename;

5、修改表

ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST | AFTER col_name];
  示例
mysql> CREATE TABLE emp(ename VARCHAR(10),
    -> hiredate DATE,
    -> sal DECIMAL(10,2),
    -> deptno INT(2));
Query OK, 0 rows affected (0.02 sec)

mysql> DESC emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(10)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(2)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

mysql> ALTER TABLE emp MODIFY ename VARCHAR(20);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(2)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

  增加表字段

ALTER TABLE tablename ADD [COLUMN] column_definition [FIRST | AFTER col_name];
  示例
mysql> ALTER TABLE emp ADD COLUMN age INT(3);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(2)        | YES  |     | NULL    |       |
| age      | int(3)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

  刪除表字段

ALTER TABLE tablename DROP [COLUMN] col_name;

  字段改名

ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST | AFTER col_name];
  示例
mysql> DESC emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(2)        | YES  |     | NULL    |       |
| age      | int(3)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> ALTER TABLE emp CHANGE COLUMN age age1 INT(4);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC emp;
+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| ename    | varchar(20)   | YES  |     | NULL    |       |
| hiredate | date          | YES  |     | NULL    |       |
| sal      | decimal(10,2) | YES  |     | NULL    |       |
| deptno   | int(2)        | YES  |     | NULL    |       |
| age1     | int(4)        | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

注意:change和modify都可以修改表的定義,

  不同的是change后面需要寫兩次列名,不方便。

  但是change的優點是可以修改列名稱,modify則不能。

 

  修改字段排列順序

  上面字段增加和修改語法(ADD、CHANGE、MODIFY)中,都有可選項 FIRST | AFTER column_name,默認ADD增加的新字段是加在表的最后位置,而CHANGE/MODIFY默認都不會改變字段的位置。

  FIRST :代表將字段位置添加或修改到第一列。

  AFTER column_name : 代表將字段位置添加或者修改到column_name字段的后面。

 

注意: CHANGE/FIRST/AFTER COLUMN這些關鍵字都屬於MySQL在標准SQL上的擴展,在其他數據庫上不一定適用。

 

  修改表名稱

ALTER TABLE tablename RENAME [TO] new_tablename;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM