mysql -u root -p # -u 指定用户 -p 该选项后面可以直接跟明文密码进行登录
mysql -V # 查看MySQL数据库的版本
show databases; #注意:所有操作都要加上“;”
use <库名>; # 切换到指定库
show tables; # 显示指定库中的所有表
use <库名>; # 切换到库
desc <表>; # 查看库中表字段(数据)
desc <表>\G;
#页面显示比较混乱时,使用\G可以将每一行表格的字段竖向分段显示
SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理邓功能。
create database <新库名>; #创建新的数据库
use <库>; #切换到指定库
create table <新表名>(字段1 数据类型,字段2 数据类型,...字段n 数据类型primary key (主键名));
# 创建表在当前库中
# primary key (主键名) 可以给某一列设置主键
# 主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键
insert into <库名>.<表名>(字段1,字段2,字段3,字段4,字段5) values (字段值1,字段值2,字段值3,字段值4,字段值5);
# 如果字段的数据类型中使用了字符类型(如char、varchar等字符类型),输入字段值时两边需要加上单引号
# 该操作也可以指定某些字段的值,进行添加,未添加的值均按照之前的设定的默认值进行添加
select * from <表名>; #当前库中指定表中内容
select * from <库名>.<表名> #查看指定库中表内容
select * from <表名>\G #将表中每一行记录的数据纵向查看
drop database <库名>; #删除库
drop table <表名>; #删除当前库中的指定表
drop table <库名>.<表名>; #直接删除某库中的某表
delete from <表名> where 条件表达式
#删除指定表中的数据
alter table <旧表名> rename <新表名>; #更改表名
alter table <表名> add <字段> <数据类型> #在已有的表中添加相关字段和制约属性
alter table class1 add cardid char(18) default '暂不提供';
#在class1表中添加cardid字段,设置数据类型为字符,最多填写18个字节,设置default默认值为'暂不提供'
alter table <表名> add <字段> <数据类型>;
alter table <表名> change <旧字段名> <新字段名> 数据类型;
# 该命令可以更改表结构中的字段名称,并修改字段的数据类型
#如果只想要更改字段的数据类型也可以执行以下命令格式
alter table <表名> change <字段名> <字段名> 数据类型;
#以上两个字段内容一致
alter table <表名> drop <字段>;
#指定表删除指定字段
create table <新表> like <旧表>;
#通过like方法复制旧表的表结构
insert into <新复制表> select * from <旧表>;
使用insert into 进行插入(导入)数据,数据选取使用select * from 提取旧表内容
delete from <表名>;
create temporary table <表名> (字段1 数据类型,字段2 数据类型,...)
非空约束(not null)
非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。
Null类型特征:所有的类型的值都可以是null,包括int、float 等数据类型
唯一性约束(unique)
唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。
唯一约束不允许出现重复的值,但是可以为多个null。
同一个表可以有多个唯一约束,多个列组合的约束。
在创建唯一约束时,如果不给唯一约束名称,就默认和列名相同。
唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。
主键约束(primary key) PK
主键约束相当于 唯一约束 + 非空约束 的组合,主键约束列不允许重复,也不允许出现空值。
每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别创建。
当创建主键的约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。
外键约束(foreign key) FK
外键约束是用来加强两个表(主表和从表)的一列或多列数据之间的连接的,可以保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。
创建外键约束的顺序是先定义主表的主键,然后定义从表的外键。也就是说只有主表的主键才能被从表用来作为外键使用,被约束的从表中的列可以不是主键,主表限制了从表更新和插入的操作。
默认值约束 (Default)
若在表中定义了默认值约束,用户在插入新的数据行时,如果该行没有指定数据,那么系统将默认值赋给该列,如果我们不设置默认值,系统默认为NULL。
自增约束(AUTO_INCREMENT)
自增约束(AUTO_INCREMENT)可以约束任何一个字段,该字段不一定是PRIMARY KEY字段,也就是说自增的字段并不等于主键字段。
但是PRIMARY_KEY约束的主键字段,一定是自增字段,即PRIMARY_KEY 要与AUTO_INCREMENT一起作用于同一个字段。
当插入第一条记录时,自增字段没有给定一个具体值,可以写成DEFAULT/NULL,那么以后插入字段的时候,该自增字段就是从1开始,没插入一条记录,该自增字段的值增加1。当插入第一条记录时,给自增字段一个具体值,那么以后插入的记录在此自增字段上的值,就在第一条记录该自增字段的值的基础上每次增加1。
也可以在插入记录的时候,不指定自增字段,而是指定其余字段进行插入记录的操作。
① 外键的定义
如果一个属性字段X在表一中是主键,而在表二不是主键,则字段X称为表二的外键。
② 主外键表的应用实例
创建2个表,一个专业名称的表,一个学生的表,学生所学的专业编号与,专业表中的专业对应编号进行一一对应
create table profession(proid int,proname char(10));
# 创建一个名为profession(专业)的表
create table student (id int primary key,name char(10),age int,proid int not null);
# 创建一个名为student(学生)的表
alter table profession add primary key(proid);
# 给profession表增加主键,设置主键为proid
alter table student add constraint FK_pro foreign key(proid) references profession(proid);
# 给student表增加从键proid,并且绑定profession的主键proid作为主从键绑定
# constraint FK_pro 指定外键的名称为FK_pro