目录
进行SQL操作之前需要连接MySQL服务器
连接命令:mysql -uXXX -pXXX
mysql代表客户端命令;
-u:是连接数据库的用户名;
-p:需要输入密码;
退出数据库:exit
create database database_name;
show databases;
drop database database_name;
use database_name;
show tables;
注意:该命令必须先选择一个库,使用use XXX,才能查看表
具体完整性约束如下:
一个表中只能有一个主键约束,不能为空,也不能重复。
1、创建表时直接添加
- 格式1:
- create table 表名(
- 属性1 数据类型 primary key
- );
-
- 格式2:
- create table 表名(
- 属性1 数据类型,
- 属性2 数据类型,
- 属性3 数据类型,
- primary key(属性1,属性2)
- );
- 当需要声明联合主键时,可以使用格式2
-
2、针对已经存在的表,通过alter语句添加主键
- 格式1:
-
- alter table 表名 modify 属性名 数据类型 primary key;
-
- 格式2:
-
- alter table 表名 add primary key (属性名1,属性名2);
- 当需要声明联合主键时,可以使用格式2
-
alter table 表名 drop primary key;
• 唯一约束是指定table的属性不能重复,保证数据的唯一性;
• 唯一约束不允许出现重复的值,但是可以有多个null;
• 同一个表中可以有多个唯一约束
• 如果不指定唯一约束的名称,就默认和属性名相同;
• MySQL会给唯一约束的属性上默认创建一个唯一索引;
(索引:相当于书的目录,提高查询效率)
1、创建表的同时创建唯一约束
- create table 表名(
- 属性1 数据类型 unique,
- 属性2 数据类型 unique
- );
2、针对已经存在的表,添加唯一约束
- 格式:
-
- alter table 表名 add unique(属性名);
格式:alter table 表名 drop index 唯一约束的名字;
注意:删除唯一约束时,不是用unique关键字删除的,而是输入唯一约束的名字
index:因为创建唯一约束的时候,会默认创建唯一索引,index就代表索引的意思,所以在删除唯一约束时要加上index
外键(Foreign Key):如果一个实体的某个字段指向另一个实体的主键,就称为外键。主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
主键用于将两个表连接在一起,让两个表的数据保持同步。
对外键约束的几点说明:
- create table table_name(
-
- 属性名1 数据类型 [完整性约束条件],
-
- 属性名2 数据类型 [完整性约束条件],
-
- 属性名3 数据类型 [完整性约束条件]
-
- );
注意:
desc table_name;
用desc命令可以查看表的结构,包括字段名称,属性类型,是否为空,约束条件,默认值及备注信息.
show create table table_name;
(SQL语句可以用';'号或者是\G结尾,使用\G使打印格式更加清晰)
show命令可以打印出创建表的SQL语句,并限制该表的存储引擎及字符集编码信息.
语法: drop table 表名;
删除多个表:drop table 表名1,表名2;
在使用过程中不满足使用的情况下,使用alter 命令修改
alter table old_table rename new_table;
alter table 表名 modify 属性名 数据类型;
alter table 表名 change 旧属性名 新属性名 新数据类型;
alter table 表名 add 属性名 属性类型 [完整性约束] [first | after 属性名2](插入的位置);
alter table 表名 drop 属性名;
alter table 表名 modify 属性名1 数据类型 first | after 属性名2;
alter table 表名 engine=InNoDB或MyISAM;