一. 创建数据库
二. 查看数据库
使用sql语句查看
语法:show databases;
查看已有数据库的创建信息
语法:show create database 数据库名;
使用图形化界面查看创建信息
选择要查看的库名右键-“Edit Database”
三. 修改数据库
四. 删除数据库
注意:数据库一旦删除则数据库中的表和数据都会被一同删除
使用SQL语句删除
语法:drop database 库名;
例如:删除test1库
使用图形化界面删除
选中要删除的库名–右键–选中“Delete Database”
表基本操作
一. 基本概念
数据库和表的关系
每个数据库包含N张表,及表示在库中
表(二维表)
行和列组成:可以将复杂的数据保存在简单的表中
表中的每一行就是一条完整的记录
表中的列用于保存每条记录中特点的信息
二. 创建表
使用sql语句创建:
语法:create table 表名(
字段名1 字段类型1 [完整性约束],
字段名2 字段类型2 [完整性约束],
…
字段名n 字段类型n [完整性约束]
)
注意:1. 表名不能使用关键字 例如 database select where
2. 每组字段名 字段类型之间使用“,”隔开,但最后一个不需要“,”
create table student(
id int(6),
name varchar(20),
gender varchar(1),
age int(2)
)
三. 查看表
desc student
-- 查看student表的详细结构
show create table student
四. 修改表结构
-- 将student表名修改为t_student;
alter table student rename t_student
deec t_student
alter table t_student modify id int(10)
alter table t_student modify id int(8),
modify name varchar(30)
修改字段名:
语法:alter table 表名 change 旧字段名 新字段名 旧字段类型
alter table t_student change gender sex varchar(1)
-- 先將t_student中的sex字段名修改為gender
alter table t_student change sex gender varchar(1)
-- t_student 表中gender修改為sex,數據類型varchar(2)
alter table t_student change gender sex varchar(2)
添加字段
语法:alter table 表名 add 字段名 字段类型 完整性約束
alter table t_stydent add score float
alter table t_student add phone varchar(11) first;
alter table t_student add class varchar(20) after age;
alter table t_student drop phone;
五. 删除表
-- 創建一個新錶
create table test1(
id int(8)
)
-- 刪除test1表
drop table test1;
一.完整性约束
MySQL支持的完整性约束
约束条件 描述
primary key 主键约束
unique 唯一约束
not null 非空约束
default 默认约束
auto_increment 自动增长约束
foreign key 外键约束
主键约束(PK):
特点:唯一且为空
主键可以由一个字段组成 也可以由多个字段组成
如果主键可以由一个字段组成既可以添加到列级也可以添加到表级
如果由多个字段组成只能添加到表级
(1). 在字段的列级添加约束
create table 表名(
字段名 字段类型 primary key
)
create table student1 (
id int(8) primary key,
name varchar(20),
age int(2),
sex vachar(1)
)
(2). 表级上添加主键约束
create table 表名(
字段名1 字段类型1,
字段名2 字段类型2,
…
字段名n 字段类型n,
[constraint 主键约束名] primary key(字段名)
)
create table student2(
id int(8),
name varchar(20),
age int(2),
sex varchar(1),
constraint pk_student2 primary key(id)
)
(3). 多个字段作为组件,只能添加到表级
create table 表名(
字段名1 字段类型1,
字段名2 字段类型2,
…
字段名n 字段类型n,
[constraint 主键约束名] primary key(字段名1,字段名2)
)
create table student3(
school varchar(20),
id int(8),
name varchar(20),
age int(2),
sex varchar(1),
constraint pk_student3 primary key(school, id)
)
desc student3
-- 创建表student4 ,不加id主键约束
create table student4(
id int(8),
name varchar(30)
age int(2)
sex varchar(1)
)
-- 创建完后添加主键约束
alter table student4 add constraint ph_student4 primary key(id)
desc student4
删除主键约束
语法alter table 表名 drop primary key;
alter table student4 drop primary key;
(1). 列级添加唯一约束
语法:create table 表名(
字段名1 字段类型1 unique,
字段名2 字段类型2,
…
字段名n 字段类型n)
create table student5(
id int(8)
name varchar(20) unique
sex varchar(1)
age int(2)
)
desc student5
(2). 表级添加唯一约束
语法:create table 表名(
字段名1 字段类型1 unique,
字段名2 字段类型2,
…
字段名n 字段类型n,
[constraint 唯一约束名] unique(字段1,字段2…))
create table student6(
id int(8),
name varchar(20),
age int(2),
sex varchar(1),
constraint uk_student6_id_name unique(id,name)
)
desc student6
(3). 给已有表添加唯一约束
alter table 表名 add [constraint 唯一约束名] unique(字段1,字段2…))
create table student7(
id int(8)
name varchar(20)
age int(2)
sex varchar(1)
)
alter table student7 add constraint uk_student7_name unique(name)
desc student7
(4). 删除唯一约束
alter table 表名 drop index 唯一约束名
注意:如果单个字段没有指定唯一约束名,则默认的唯一约束名为字段名
alter table student7 drop index uk_student7_name
(1). 列级添加非空约束
create table 表名(
字段名 字段类型 not null
)
create table student8(
id int(8),
name varchar(20) not null,
age int(2),
sex varchar(1)
)
desc student8
(2). 给已有表添加非空约束
alter table 表名 modify 字段名 字段类型 not null
create table student9(
id int(8),
name varchar(20),
sex varchar(1),
age int(2)
)
alter table student9 modify name varchar(20) not null;
desc student9;
(3). 删除非空约束
alter table 表名 modify 字段名 字段类型 [null]
alter table student9 modify name varchar(20)
默认值约束(default)
指在没有对某字段插入具体值时候会去默认的值
注意:1. 只能使用列级约束
2. 对于使用默认值约束,如果插入的数据为“null”,则不会使用默认值,只有没有插入数据时候,才会使用默认值
(1). 列级添加默认值约束
语法:create table 表名(
字段名 字段类型 default value
)
create table student10(
id int(8),
name varchar(20),
sex varchar(2) default "男"
age int(2)
)
desc student10;
(2). 给已有表添加默认值约束:
alter table 表名 modify 字段名 字段类型 default value;
create table student11(
id int(8),
name varchar(20),
sex varchar(2),
age int(2)
);
alter table student11 modify sex varchar(2) default '男'
desc student11;
(3). 删除默认值约束:
alter table 表名 modify 字段名 字段类型 ;
alter table student11 modify sex varchar(2)
(1). 创建表时候创建自动增长约束:
create table 表名(
字段名 字段类型 auto_increment
)
create table student12(
id int(8) primary key auto_increment,
name varchar(20),
sex varchar(1),
age int(2)
)
desc student12
(2). 给已有表添加自动增长约束:
语法:alter table 表名 modify 字段名 字段类型 auto_increment
create table student13(
id int(8) primary key,
name varchar(20),
age int(2),
sex varchar(2)
)
alter table student13 modify id int(8) auto_increment;
desc student13;
(3). 删除自增长约束 :
语法:alter table 表名 modify 字段名 字段类型
alter table student13 modify id int(8)
(1)创建外键约
注意:虽然MySQL提供了列级添加外键约束,但添加完后不会生效,所以使用表级添加外键约束
语法:create table 表名(
字段名 字段类型,
[constraint 外键约束名] foreign key(字段名) references 表(字段名)
)
-- 班級
create table t_class(
cno int(8) primary key auto_increment
cname varchar(20)
)
-- 學生
create table t_student(
cno int(8) primary key auto_increment,
cname varchar(20),
age int(2),
sex varchar(2),
stu_cno int(8),
constraint fk_t_student_stu_cno foreign key(stu_cno) references t_class(cno)
)
(2)在已有表中添加外键约束:
语法:alter table 表名 add [constraint 外键约束名] foreign key(字段名) references 表(字段名)
-- 創建班級表(tt_class)
create table tt_class(
cno int(8) primary key auto_increment,
cname varchar(20)
sno int(8) primary key auto_increment,
sname varchar(20)
)
-- 創建學生表(tt_student)
create table tt_student(
sno int(8) primary key auto_increment,
sname varchar(20),
stu_cno int(8)
)
-- 給tt_student添加外鍵
alter table tt_student add constraint fk_tt_student_cno foreign key (stu_cno) references tt_class(cno)
(3)删除外键约束:
alter table 表名 drop foreign key 外键约束名
alter table tt_student drop foreign key fk_tt_student_stu_cno
(4)有关系的表进行删除
a.先删除有外键约束的表,再删除主表
-- 先刪除t_student
drop table t_student;
drop table class
b.先删除外键约束再删除表