ITPub博客

首页 > 数据库 > MySQL > MySQL 创建数据库 创建表

MySQL 创建数据库 创建表

原创 MySQL 作者:starive 时间:2014-08-28 13:18:55 0 删除 编辑

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博客 ” ,链接:https://blog.itpub.net/26435490/viewspace-1259471/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-18

  • 博文量
    143
  • 访问量
    530075