MySQL 建立資料庫 建立表

starive發表於2014-08-28

MySQL 建立資料庫 建立表


最近幾天開始研究MySQL。那麼先來看看最基本的MySQL操作。


登入資料庫:


  1. sudo mysql -u root -p

mysql代表客戶端命令;
-u 後面跟連線的資料庫使用者名稱;
root為使用者名稱,也可以是其他使用者名稱
-p 表示要輸入密碼



使用SHOW語句找出在伺服器上當前存在什麼資料庫: 


  1. mysql> SHOW DATABASES; 
  2. +----------+ 
  3. | Database | 
  4. +----------+ 
  5. | mysql | 
  6. | test | 
  7. +----------+ 
  8. 3 rows in set (0.00 sec)


建立一個資料庫starive  


  1. mysql> CREATE DATABASE starive;


注意不同作業系統對大小寫的敏感。 



選擇你所建立的資料庫 


  1. mysql> USE starive
  2. Database changed





此時你已經進入你剛才所建立的資料庫starive. 

顯示錶

  首先看現在你的資料庫中存在什麼表:

  1. mysql> SHOW TABLES; 
  2. Empty set (0.00 sec)


刪除資料庫

  1. drop database dbname;

建立表

說明剛才建立的資料庫中還沒有資料庫表。下面來建立一個資料庫表Student, Course, SC :

  1. CREATE TABLE Student
  2.        (Sno CHAR(9) PRIMARY KEY,
  3.         Sname CHAR(20) NOT NULL, 
  4.         Ssex CHAR(4),
  5.         Sage SMALLINT,
  6.         Sdept CHAR(20)) engine= innodb;

貼上複製版本:

  1. CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) NOT NULL,Ssex CHAR(4),Sage SMALLINT,Sdept CHAR(20)) engine= innodb;


檢視錶的定義:


  1. DESC tablename

更詳細的檢視錶的定義


  1. show create table tablename \G;

  1. create table course(
  2.       cno CHAR(6),
  3.       cname varchar(20),
  4.       credit int,
  5.       primary key(cno)
  6.       ) engine= innodb;

貼上複製版本:

  1. create table course(cno CHAR(6),cname varchar(20),credit int,primary key(cno)) engine= innodb;


  1. CREATE TABLE SC
  2.          (Sno CHAR(9) NOT NULL,
  3.           Cno CHAR(6) NOT NULL, 
  4.           Grade SMALLINT,
  5.           PRIMARY KEY (Sno,Cno),
  6.           constraint f1 FOREIGN KEY (Sno) REFERENCES Student(Sno),
  7.           FOREIGN KEY (Cno) REFERENCES Course(Cno)
  8.       ) engine= innodb;


貼上複製版本:

  1. CREATE TABLE SC(Sno CHAR(9),cno CHAR(6),Grade SMALLINT,PRIMARY KEY (Sno,cno),constraint f1 FOREIGN KEY (Sno) REFERENCES Student(Sno),FOREIGN KEY (cno) REFERENCES course(cno))engine= innodb;


######  書《深入淺出MySQL:資料庫開發、優化與管理維護(第二版)》 裡面的兩張表 emp, dept  #####
  1. CREATE TABLE emp (
  2.   ename varchar(20),
  3.   hiredate date,
  4.   sal decimal(10,2),
  5.   deptno int(2)
  6. ) ENGINE=InnoDB

  1. mysql> create table dept(deptno int(2),deptname varchar(20));
  2. Query OK, 0 rows affected (0.04 sec)


刪除表:

  1. drop table tablename;

建立了表後,我們可以看看剛才做的結果,用SHOW TABLES顯示資料庫中有哪些表: 

  1. mysql> show tables;
  2. +-------------------+
  3. | Tables_in_starive |
  4. +-------------------+
  5. | course |
  6. | sc |
  7. | student |
  8. +-------------------+
  9. 3 rows in set (0.00 sec)

5、顯示錶的結構: 

  1. mysql> describe student;
  2. +-------+-------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-------------+------+-----+---------+-------+
  5. | Sno | char(9) | NO | PRI | NULL | |
  6. | Sname | char(20) | NO | | NULL | |
  7. | Ssex | char(4) | YES | | NULL | |
  8. | Sage | smallint(6) | YES | | NULL | |
  9. | Sdept | char(20) | YES | | NULL | |
  10. +-------+-------------+------+-----+---------+-------+
  11. 5 rows in set (0.22 sec)


修改表


修改表型別


  1. alter table tablename MODIFY [column] column_definition [First | After col_name] ([]可選)

  2. mysql> alter table emp modify ename varchar(20);
  3. Query OK, 0 rows affected (0.24 sec)
  4. Records: 0 Duplicates: 0 Warnings: 0



增加表欄位


  1. alter table tablename ADD [column] column_definition [First | After col_name]

  2. mysql> alter table emp add column age int(3);
  3. Query OK, 0 rows affected (0.18 sec)
  4. Records: 0 Duplicates: 0 Warnings: 0



刪除表欄位


  1. alter table tablename drop [column] col_name

  2. mysql> alter table emp drop column age;
  3. Query OK, 0 rows affected (0.14 sec)
  4. Records: 0 Duplicates: 0 Warnings: 0

欄位改名

  1. alter table tablename CHANGE [COLUMN] old_col_name new_col_definition [First | After col_name]

  2. mysql> alter table emp change age age1 int(4);
  3. Query OK, 0 rows affected (0.14 sec)
  4. Records: 0 Duplicates: 0 Warnings: 0



修改欄位排列順序

Eg: 將新增加的欄位 birth date 加在 ename 之後:

  1. mysql> alter table emp add birth date after ename;
  2. Query OK, 0 rows affected (0.10 sec)
  3. Records: 0 Duplicates: 0 Warnings: 0


  4. mysql> desc emp;
  5. +----------+---------------+------+-----+---------+-------+
  6. | Field | Type | Null | Key | Default | Extra |
  7. +----------+---------------+------+-----+---------+-------+
  8. | ename | varchar(20) | YES | | NULL | |
  9. | birth | date | YES | | NULL | |
  10. | hiredate | date | YES | | NULL | |
  11. | sal | decimal(10,2) | YES | | NULL | |
  12. | deptno | int(2) | YES | | NULL | |
  13. | age1 | int(4) | YES | | NULL | |
  14. +----------+---------------+------+-----+---------+-------+
  15. 6 rows in set (0.00 sec)


修改欄位age, 將它放在最前面:

  1. alter table emp modify age int(3) first;

  2. mysql> desc emp;
  3. +----------+---------------+------+-----+---------+-------+
  4. | Field | Type | Null | Key | Default | Extra |
  5. +----------+---------------+------+-----+---------+-------+
  6. | age | int(3) | YES | | NULL | |
  7. | ename | varchar(20) | YES | | NULL | |
  8. | birth | date | YES | | NULL | |
  9. | hiredate | date | YES | | NULL | |
  10. | sal | decimal(10,2) | YES | | NULL | |
  11. | deptno | int(2) | YES | | NULL | |
  12. +----------+---------------+------+-----+---------+-------+
  13. 6 rows in set (0.01 sec)

更改表名

語法如下:
  1. alter table tablename rename [To] new_tablename

  2. mysql> alter table emp rename emp1;
  3. Query OK, 0 rows affected (0.08 sec)

往表中加入記錄 

我們先用SELECT命令來檢視錶中的資料: 

  1. mysql> select * from student; 
  2. Empty set (0.00 sec)


插入資料:

  1. INSERT INTO Student VALUES('0201','趙偉','男',18,'cs');
  2. INSERT INTO Student VALUES('0202','張力虹','男',19,'is');
  3. INSERT INTO Student VALUES('0203','徐秀美','女',21,'is');
  4. INSERT INTO Student VALUES('0204','劉平','男,20,'cs');
  5. INSERT INTO Student VALUES('0205','姚家全','男',19,'cs');
  6. INSERT INTO Student VALUES('0206','上關美雲','女',23,'ma');





再用上面的SELECT命令看:

  1. mysql> select * from student;
  2. +------+----------+------+------+-------+
  3. | Sno | sname | Ssex | Sage | Sdept |
  4. +------+----------+------+------+-------+
  5. | 0201 | 趙偉 | 男 | 18 | cs |
  6. | 0202 | 張力虹 | 男 | 19 | is |
  7. | 0203 | 徐秀美 | 女 | 21 | is |
  8. | 0204 | 劉平 | 男 | 20 | cs |
  9. | 0205 | 姚家全 | 男 | 19 | cs |
  10. | 0206 | 上關美雲 | 女 | 23 | ma |
  11. +------+----------+------+------+-------+
  12. 6 rows in set (0.00 sec)



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26435490/viewspace-1259471/,如需轉載,請註明出處,否則將追究法律責任。

相關文章