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

赣公网安备 36010602000087号
相关文章