当下软件园-绿色软件,免费软件下载,电脑软件下载,绿色软件下载网站
TAG标签| 网站地图| 设为首页| 加入收藏

MySQL数据库创建、修改和删除表操作实例

相关游戏 相关文章 发表评论字体大小:【 | |

admin 2024-12-25 15:49 www.fytlaw.com
Access to MySQL v4.3 英文绿色纯净版种类:数据库类大小:1.7M语言:英文 评分:6.6标签:立即下载

其实对不少人来讲对于SQL语句已经忘了不少,或者说是不懂不少,由于有数据库图形操作软件,便捷了大伙,但大家不可以忘记最根本的东西,尤其是一些细节上的东西,可能你用惯了Hibernate,不需要写SQL语句,但不是任何项目都要用到大框架的,假如不需要,那你是否就不会操作数据库了呢,所以大家最好还是熟知一点好,对大家将来找工作和工作都有帮助。

在说创建、修改和删除表前,大家还是要进行一个操作的简单说明:

1.登陆数据库系统

在命令行中登陆MySQL数据库管理软件,输入一下内容:

mysql -h localhost -u root -p

不少人都了解这个,但其中参数的具体表示什么大家还是要知道的,其中,“-h”参数指连接的主机名,所将来面是localhost;“-u”参数表示用户名,此处的用户名为root;“-p”参数表示用户的密码,按下Enter键后就显示“Enter password:”,输入密码即可登录进来了。

2.创建数据库

在创建数据库之前,大家可以查询已经存在的数据库:

mysql SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || community|| community_test || data || mydata || mysql|| performance_schema || test |+--------------------+8 rows in set 

创建数据库的格式:CREATE DATABASE 数据库名;

示例:创建一个名为example的数据库

mysqlCREATE DATABASE example;Query OK, 1 row affected mysqlSHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || community|| community_test || data || example|| mydata || mysql|| performance_schema || test |+--------------------+9 rows in set 

3.删除数据库:

格式:DROP DATABASE 数据库名;

示例:删除example数据库

mysqlDROP DATABASE example;Query OK, 0 rows affected mysql SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || community|| community_test || data || mydata || mysql|| performance_schema || test |+--------------------+8 rows in set 

4.数据库存储引擎

存储引擎就是指表的种类,数据库存储引擎决定了表在计算机的存储方法。

MySQL中查看存储引擎的种类命令:SHOW ENGINES;

mysql SHOW ENGINES;+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| Engine | Support | Comment| Transactions | XA | Savepoints |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+| FEDERATED| NO| Federated MySQL storage engine| NULL | NULL | NULL || MRG_MYISAM | YES | Collection of identical MyISAM tables| NO | NO | NO || MyISAM | YES | MyISAM storage engine| NO | NO | NO || BLACKHOLE| YES | /dev/null storage engine  | NO | NO | NO || CSV| YES | CSV storage engine| NO | NO | NO || MEMORY | YES | Hash based, stored in memory, useful for temporary tables| NO | NO | NO || ARCHIVE| YES | Archive storage engine| NO | NO | NO || InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES| YES| YES|| PERFORMANCE_SCHEMA | YES | Performance Schema| NO | NO | NO |+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+9 rows in set 

查看结果中,Engine参数指存储引擎名字;Support参数说明MySQL是不是支持该种类引擎;Comment参数表示对该引擎的评论;Transaction参数表示是不是支持事务处置;XA参数表示是不是分布式买卖处置的XA规范;Savepoints参数表示是不是支持保存点,以便捷事务的回滚操作;由上面大家看到InnoDB存储引擎是default的,也就是数据库默认的存储引擎,下面大家简单介绍一下InnoDB。

InnoDB是MySQL的一种存储引擎,InnoDB给MySQL提供了事务、回滚、崩溃修复能力和多版本并发控制的事务安全。InnoDB是MySQL上第一个提供外键约束的表引擎,而且对事务处置的能力,也是其他存储引擎不可以比拟的。不过这种引擎的缺点就是读写效率稍差,占用的数据空间相对比较大。

下面就是正式的内容:

创建表:

1)创建表的形式:

CREATE TABLE 表名 ;

假如你非常急的登陆进来就创建表,恭喜你,你会出现“No database selected”的错误,由于你没告诉其他人你要选择在什么数据库创建表,所以在创建之前要选择数据库,格式:USE 数据库名;

示例创建一个student表:

mysql use example;Database changedmysql CREATE TABLE student - );Query OK, 0 rows affected 

上面创建表的时候涉及到一个完整性约束条件,下面就列出一个完整性约束条件表:

约束条件说明PRIMARYKEY标识该属性为该表的主键,可以唯一的标识对应的元组FOREIGN KEY标识该属性为该表的外键,是与之联系某表的主键NOT NULL标识该属性不可以为空UNIQUE标识该属性的值是唯一的AUTO_INCREMENT标识该属性的值是自动增加,这是MySQL的SQL语句的特点DEFAULT为该属性设置默认值

下面解说一下上面完整性约束条件的应用:

2)设置表的主键

单字段主键格式:属性名 数据种类 PRIMARY KEY

示例:

mysqlCREATE TABLE student1 - );Query OK, 0 rows affected 

多字段主键格式:PRIMARY KEY

示例:

mysql CREATE TABLE student2 ,- PRIMARY KEY- );Query OK, 0 rows affected 

3)设置表的外键

格式:CONSTR人工智能NT 外键别名 FOREIGN KEY REFERENCES 表名

示例:

mysql CREATE TABLE teacher ,- CONSTR人工智能NT STUID FOREIGN KEY REFERENCES student1- );Query OK, 0 rows affected 

4)设置表的非空约束

简单的说就是不让这个属性的值为空,不填的话就会显示错误

格式:属性名 数据种类 NOT NULL

5)设置表的唯一性约束

就是这个属性的值是不可以重复的

格式:属性名 数据种类 UNIQUE

6)设置表的属性值自动增加

AUTO_INCREMENT约束的字段可以是任何整数种类(TINYINT、SMALLINT、INT和BIGINT),在默认的状况下,该字段的值是从1开始自增

格式:属性名 数据种类 AUTO_INCREMENT

7)设置表的属性的默认值

格式:属性名 数据种类 DEFAULT 默认值

下面对4-7进行综合示例:

mysql CREATE TABLE student3  NOT NULL,- sex varchar DEFAULT 'male'- );Query OK, 0 rows affected 

查询表结构

查询表基本结构语句DESCRIBE

格式:DESCRIBE 表名;

通过查询表的结构,就非常明确的对表进行解析,而且可以查询一下自己创建的表有没错误,这个SQL语句需要会用啊

示例:

mysql desc student3;+------------+-------------+------+-----+---------+----------------+| Field| Type| Null | Key | Default | Extra|+------------+-------------+------+-----+---------+----------------+| id | int | NO | PRI | NULL| auto_increment || teacher_id | int | YES| UNI | NULL||| name | varchar | NO | | NULL||| sex| varchar | YES| | male||+------------+-------------+------+-----+---------+----------------+4 rows in set 

查询表详细结构语句SHOW CREATE TABLE

通过这个SQL语句可以查询表的详细概念,除去字段名、字段的数据种类、约束条件外,还可以查询表的默认存储引擎和字符编码

格式:SHOW CREATE TABLE 表名;

示例:

mysql SHOW CREATE TABLE student3;+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table| Create Table |+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| student3 | CREATE TABLE `student3`  NOT NULL AUTO_INCREMENT,`teacher_id` int DEFAULT NULL,`name` varchar NOT NULL,`sex` varchar DEFAULT 'male',PRIMARY KEY ,UNIQUE KEY `teacher_id` ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |+----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set 

修改表:

1)修改表名

表名可以在一个数据库中唯一的确定一张表。

格式:ALTER TABLE 旧表名 RENAME 新表名;

示例:

mysql ALTER TABLE student RENAME student4;Query OK, 0 rows affected mysql DESCRIBE student;ERROR 1146 : Table 'example.student' doesn't exist

由上面可以看出,改名后的表已经没有了。

2)修改字段的数据种类

格式:ALTER TABLE 表名 MODIFY 属性名 数据种类;

示例:

mysql DESCRIBE student1;+-------+-------------+------+-----+---------+-------+| Field | Type| Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id| int | NO | PRI | NULL| || name| varchar | YES| | NULL| |+-------+-------------+------+-----+---------+-------+2 rows in set mysql ALTER TABLE student1 MODIFY name varchar;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql DESCRIBE student1;+-------+-------------+------+-----+---------+-------+| Field | Type| Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id| int | NO | PRI | NULL| || name| varchar | YES| | NULL| |+-------+-------------+------+-----+---------+-------+2 rows in set 

3)修改字段名:

格式:ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据种类;

示例:

mysql DESCRIBE student1;+-------+-------------+------+-----+---------+-------+| Field | Type| Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| id| int | NO | PRI | NULL| || name| varchar | YES| | NULL| |+-------+-------------+------+-----+---------+-------+2 rows in set mysql ALTER TABLE student1 CHANGE name stu_name varchar;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql DESCRIBE student1;+----------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| id | int | NO | PRI | NULL| || stu_name | varchar | YES| | NULL| |+----------+-------------+------+-----+---------+-------+2 rows in set 

这里我修改的字段名的同时也修改了数据种类了,假如你不想修改数据种类的话就根据原来的写就好了。

4)增加字段

格式:ALTER TABLE 表名 ADD 属性名1 数据种类 [完整性约束条件] [FIRST | AFTER 属性名2];

其中,“属性名1”参数指需要增加的字段的名字;“FIRST”参数是可选参数,其用途是将新增字段设置为表的第一个字段;“AFTER”参数也是可选的参数,其用途是将新增字段添加到“属性名2”后面;“属性名2”当然就是指表中已经有些字段

示例:

mysql DESCRIBE student1;+----------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| id | int | NO | PRI | NULL| || stu_name | varchar | YES| | NULL| |+----------+-------------+------+-----+---------+-------+2 rows in set mysql ALTER TABLE student1 ADD teacher_name varchar NOT NULL AFTER id;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql DESCRIBE student1;+--------------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+--------------+-------------+------+-----+---------+-------+| id | int | NO | PRI | NULL| || teacher_name | varchar | NO | | NULL| || stu_name | varchar | YES| | NULL| |+--------------+-------------+------+-----+---------+-------+3 rows in set 

5)删除字段

格式:ALTER TABLE 表名 DROP 属性名;

示例:

mysql DESCRIBE student1;+--------------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+--------------+-------------+------+-----+---------+-------+| id | int | NO | PRI | NULL| || teacher_name | varchar | NO | | NULL| || stu_name | varchar | YES| | NULL| |+--------------+-------------+------+-----+---------+-------+3 rows in set mysql ALTER TABLE student1 DROP teacher_name;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql DESCRIBE student1;+----------+-------------+------+-----+---------+-------+| Field| Type| Null | Key | Default | Extra |+----------+-------------+------+-----+---------+-------+| id | int | NO | PRI | NULL| || stu_name | varchar | YES| | NULL| |+----------+-------------+------+-----+---------+-------+2 rows in set 

6)更改表的存储引擎

格式:ALTER TABLE 表名 ENGINE = 存储引擎名;

示例:

mysql SHOW CREATE TABLE student2;+----------+------------------------------------------------------------------------------------------------------------------------------------------------| Table| Create Table+----------+------------------------------------------------------------------------------------------------------------------------------------------------| student2 | CREATE TABLE `student2`  NOT NULL DEFAULT '0',`stu_id` int NOT NULL DEFAULT '0',`name` varchar DEFAULT NULL,PRIMARY KEY ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |+----------+------------------------------------------------------------------------------------------------------------------------------------------------1 row in set mysql ALTER TABLE student2 ENGINE = MYISAM;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql SHOW CREATE TABLE student2;+----------+------------------------------------------------------------------------------------------------------------------------------------------------| Table| Create Table+----------+------------------------------------------------------------------------------------------------------------------------------------------------| student2 | CREATE TABLE `student2`  NOT NULL DEFAULT '0',`stu_id` int NOT NULL DEFAULT '0',`name` varchar DEFAULT NULL,PRIMARY KEY ) ENGINE=MyISAM DEFAULT CHARSET=gb2312 |+----------+------------------------------------------------------------------------------------------------------------------------------------------------1 row in set 

7)删除表的外键约束

格式:ALTER TABLE 表名 DROP FOREIGN KEY 外键别名;

示例:

mysql SHOW CREATE TABLE teacher;+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table|+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| teacher | CREATE TABLE `teacher`  NOT NULL,`stu_id` int DEFAULT NULL,`name` varchar DEFAULT NULL,PRIMARY KEY ,KEY `STUID` ,CONSTR人工智能NT `STUID` FOREIGN KEY  REFERENCES `stu) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set mysql ALTER TABLE teacher DROP FOREIGN KEY STUID;Query OK, 0 rows affected Records: 0Duplicates: 0Warnings: 0mysql SHOW CREATE TABLE teacher;+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table|+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+| teacher | CREATE TABLE `teacher`  NOT NULL,`stu_id` int DEFAULT NULL,`name` varchar DEFAULT NULL,PRIMARY KEY ,KEY `STUID` ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 |+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set 

删除表:

格式:DROP TABLE 表名;

删除没被关联的普通表:直接上面的SQL语句就好了

删除被其他表关联的父表:

办法1、先删除子表,在删除父表

办法2、删除父表的外键约束(上面有介绍),再删该表

TAG标签:MySQL(2)

转载请说明来源于当下软件园(https://www.gpsdan.com)

本文地址:https://www.gpsdan.com/news/2185.html

郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com

相关文章