MySQL中创建、修改和删除表命令
对于mysql数据表创建,修改,删除命令也是最基本的数据库入门基础知识了,下面小编来给大家介绍一下MySQL中创建、修改和删除表一些实例,希望对大家有所帮助.
其实对很多人来说对于SQL语句已经忘了很多,或者说是不懂很多,因为有数据库图形操作软件,方便了大家,但是我们不能忘记最根本的东西,特别是一些细节上的东西,可能你用惯了Hibernate,不用写SQL语句,但是不是任何项目都要用到大框架的,如果不用,那你是不是就不会操作数据库了呢,所以我们最好还是熟悉一点好,对我们以后找工作和工作都有帮助.
在说创建、修改和删除表前,我们还是要进行一个操作的简单说明.
1、登陆数据库系统
在命令行中登陆MySQL数据库管理系统,输入以下内容:
mysql -h localhost -u root -p
很多人都知道这个,但是其中参数的具体表示什么我们还是要了解的,其中:
-h:指连接的主机名,默认情况下是localhost,可以忽略此参数.
-u:表示用户名,此处的用户名为root.
-p:表示用户的密码
按下Enter键后就显示“Enter password:”,输入密码即可登录进去了,代码如下:
- WelcometotheMySQLmonitor.Commandsendwith;org.
- YourMySQLconnectionidis2
- Serverversion:5.6.13Sourcedistribution
- Copyright(c)2000,2013,Oracleand/oritsaffiliates.Allrightsreserved.
- OracleisaregisteredtrademarkofOracleCorporationand/orits
- affiliates.Othernamesmaybetrademarksoftheirrespective
- owners.
- Type'help;'or'h'forhelp.Type'c'toclearthecurrentinputstatement.
- mysql>
2、创建数据库
在创建数据库之前,我们可以查看已经存在的数据库.
格式:CREATE DATABASE 数据库名;
示例:查看已经存在的数据库,代码如下:
- mysql>SHOWDATABASES;
- ++
- |Database|
- ++
- |information_schema|
- |mysql|
- |performance_schema|
- ++
- 3rowsinset(0.00sec)
示例:创建一个名为example的数据库,代码如下:
- mysql>CREATEDATABASES`example`;
- QueryOK,1rowaffected(0.00sec)
- mysql>SHOWDATABASES;
- ++
- |Database|
- ++
- |information_schema|
- |example|
- |mysql|
- |performance_schema|
- ++
- 4rowsinset(0.00sec)
3、删除数据库:
格式:DROP DATABASE 数据库名;
示例:删除example数据库,代码如下:
- mysql>DROPDATABASE`example`;
- QueryOK,0rowsaffected(0.02sec)
- mysql>SHOWDATABASES;
- ++
- |Database|
- ++
- |information_schema|
- |mysql|
- |performance_schema|
- ++
- 3rowsinset(0.00sec)
4、数据库存储引擎
存储引擎就是指表的类型,数据库存储引擎决定了表在计算机的存储方式,MySQL中查询存储引擎的类型命令:SHOW ENGINES;代码如下:
- mysql>SHOWENGINES;
- ++-+++++
- |Engine|Support|Comment|Transactions|XA|Savepoints|
- ++-+++++
- |FEDERATED|NO|FederatedMySQLstorageengine|NULL|NULL|NULL|
- |MRG_MYISAM|YES|CollectionofidenticalMyISAMtables|NO|NO|NO|
- |MyISAM|YES|MyISAMstorageengine|NO|NO|NO|
- |BLACKHOLE|YES|/dev/nullstorageengine(anythingyouwritetoitdisappears)|NO|NO|NO|
- |CSV|YES|CSVstorageengine|NO|NO|NO|
- |MEMORY|YES|Hashbased,storedinmemory,usefulfortemporarytables|NO|NO|NO|
- |ARCHIVE|YES|Archivestorageengine|NO|NO|NO|
- |InnoDB|DEFAULT|Supportstransactions,row-levellocking,andforeignkeys|YES|YES|YES|
- |PERFORMANCE_SCHEMA|YES|PerformanceSchema|NO|NO|NO|
- ++-+++++
- 9rowsinset(0.00sec)
查询结果中:
Engine参数指存储引擎名称;
Support参数说明MySQL是否支持该类型引擎;
Comment参数表示对该引擎的评论;
Transaction参数表示是否支持事务处理;
XA参数表示是否分布式交易处理的XA规范;
Savepoints参数表示是否支持保存点,以方便事务的回滚操作;
由上面我们看到InnoDB存储引擎是default的,也就是数据库默认的存储引擎,下面我们简单介绍一下InnoDB.
InnoDB是MySQL的一种存储引擎,InnoDB给MySQL提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全,InnoDB是MySQL上第一个提供外键约束的表引擎,而且对事务处理的能力,也是其他存储引擎不能比拟的,不过这种引擎的缺点就是读写效率稍差,占用的数据空间相对比较大.
下面就是正式的内容:
5、创建表:
5.1、创建表的形式:
- CREATETABLE表名(
- 属性名数据类型[完整约束条件],
- 属性名数据类型[完整约束条件],
- ...
- ...
- 属性名数据类型[完整约束条件]
- );
如果你很急的登陆进去就创建表,恭喜你,你会出现“No database selected”的错误,因为你没有告诉别人你要选择在哪个数据库创建表,所以在创建之前要选择数据库.
格式:
USE 数据库名;
示例:创建一个student表,代码如下:
- mysql>CREATEDATABASE`example`;
- QueryOK,1rowaffected(0.01sec)
- mysql>USE`example`;
- Databasechanged
- mysql>CREATETABLE`student`(
- ->`id`INT,
- ->`name`VARCHAR(20)
- ->);
- QueryOK,0rowsaffected(0.11sec)
上面创建表的时候涉及到一个完整性约束条件,下面就列出一个完整性约束条件表:
约束条件 说明
PRIMARY KEY 标识该属性为该表的主键,可以唯一的标识对应的元组
FOREIGN KEY 标识该属性为该表的外键,是与之联系某表的主键
NOT NULL 标识该属性不能为空
UNIQUE 标识该属性的值是唯一的
AUTO_INCREMENT 标识该属性的值是自动增加,这是MySQL的SQL语句的特色
DEFAULT 为该属性设置默认值
下面讲解一下上面完整性约束条件的应用:
5.2、设置表的主键
5.2.1、单字段主键
格式:
属性名 数据类型 PRIMARY KEY
示例,代码如下:
- mysql>CREATETABLE`student1`(
- ->`id`INTPRIMARYKEY,
- ->`name`VARCHAR(20)
- ->);
- QueryOK,0rowsaffected(0.07sec)
5.2.2、多字段主键
格式:PRIMARY KEY(属性名1,属性名2....属性名n)
示例,代码如下:
- mysql>CREATETABLE`student2`(
- ->`id`INT,
- ->`stu_id`INT,
- ->`name`VARCHAR(20),
- ->PRIMARYKEY(`id`,`stu_id`)
- ->);
- QueryOK,0rowsaffected(0.05sec)
5.3、设置表的外键
格式:CONSTRAINT 外键别名 FOREIGN KEY(属性1,属性2,....属性n) REFERENCES 表名(属性1',属性2',...属性n')
示例,代码如下:
- mysql>CREATETABLE`teacher`(
- ->`id`INTPRIMARYKEY,
- ->`stu_id`INT,
- ->`name`VARCHAR(20),
- ->CONSTRAINT`STUID`FOREIGNKEY(`stu_id`)REFERENCES`student1`(`id`)
- ->);
- QueryOK,0rowsaffected(0.08sec)
上一页 1 2 下一页
热门评论