MySql从零开始学(数据表的基本操作)一

    自己是做安卓方面的,平时数据库方面使用都是一些框架,只会进行一些简单的查询,插入操作,发现一些数据库一些简单的原理不是特别清楚.都说学技术的;需要有个空杯心态,适当的放空自己,有所感,有所悟,才能有所提高,罗马不是一天建成的,干任何一件事都需要基本功要非常扎实,基本功不抓实,前期感觉可能有所提升,越是后期发现对基本功要求越高,故重新将Mysql从头到尾整理一遍,准备做成一个系列,有些没有整理的,会以标题显示,后期整理

查看所有数据库
show databases
创建数据库
create database database_name
4.1.1创建表的语法形式
创建表:
create table <表名>
{
字段名1,数据类型[列级别约束条件][默认值],
字段名2,数据类型[列级别约束条件][默认值],
[表级别约束条件]
}
eg:
create table tb_empl
(
id int(11),
name varchar(25)
deptId int(11),
salary float
)
4.1.2使用主键约束
主键:标识表中唯一记录,要求主键列的数据唯一,并且不能为空;主键分为两种类型:单字段主键和多字段联合主键
定义主键格式分两种
1:定义列的同时指定主键,语法规则如下
字段名 数据类型 primary key[默认值]
eg:
create table tb_empl2
(
id int(11) primary key,
name varchar(25),
deptId int(11),
salary float
)

定义完所有的列之后,指定主键,语法规则如下
[constraint<约束名>] primary key[字段名]
eg:
create table tb_empl3
(
id int(11),
name varchar(25),
deptId int(11),
salary float,
primary key(id)
)
2:定义多字段联合主键
语法规则如下
primary key[字段1,字段2,...字段n]
eg:
create table tb_tmp4
(
name varchar(25),
deptId int(11),
salary float,
primary key(name,deptId)
)
4.1.3使用外键约束
外键作用:用来建立两个表之间的链接,可以为一列或者多列,一个表中可以有一个或多个外键,
一个表的外键可以为空值,若不为空值,则每一个外键值必须等与另一个表中主键的某个值

主表(父表):对于两个具有相关联关系而言,相关的字段中主键所在的那个表即是主表
从表(字表):对于两个具有相关联关系而言,相关的字段中外键所在的那个表即是从表

定义外键语法格式:
[constraint<外键名>] foreign key 字段名1[,字段名2] references<主表名> 主键列1[,主键列2]
eg:
create table tb_dept1
(
id int(11) primary key,
name varchar(22) not null,
location varchar(50)
)
定义数据表tb_emp5,让它的键deptId作为外键关联到tb_tep1的主键id
create table tb_emp5
(
id int(11) primary key,
name varchar(25),
deptId int(11),
salary float,
constraint fk_emp_dept1 foreign key (deptId) references tb_dept1(id)
)
4.1.4使用非空约束
非空约束,指字段的值不能为空,对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错
定义非空约束语法格式:
字段名 数据类型 not null
eg:
create table tb_emp6
(
id int(11) primary key,
name varchar(25) not null,
deptId int(11),
salary float,
constraint fk_emp_dept2 foreign key (deptId) references tb_dept1(id)
)
4.1.5:使用唯一约束
唯一性约束:要求该列唯一,允许为空,但只能出现一个空值,唯一约束可以确保一列或者几列不出现重复值
定义唯一约束语法格式
1:定义完列之后直接指定唯一约束,语法规则如下
字段名 数据类型 unique
eg:定义数据表tb_dept2,指定部门的名称唯一
create table tb_dept2
(
id int(11) primary key,
name varchar(22) unique,
location varchar(50)
)
2:在定义完所有列之后指定唯一约束,语法规则如下
[constraint<约束名>] unique(<字段名>)
eg: 定义数据表tb_dep3 ,指定部门的名称唯一,
create table tb_dept3
(
id int(11) primary key,
name varchar(22),
location varchar(50),
constraint sth unique (name)
)
unique和primary key的区别:
一个表中可以有多个字段声明为unique,但只能有一个primary key声明,声明为primary key的列不允许有空值,但是声明unique的字段允许空值的存在
4.1.6:使用默认约束
语法规则如下
字段名 数据类型 default 默认值
eg:定义数据表tb_emp7,指定员工部门编号默认为111
create table tb_emp7
(
id int(11) primary key,
name varchar(25) not null,
deptId int(11) default 111,
salary float,
constraint fk_emp_dept3 foreign key(deptId) references tb_dept1(id)
)

4.1.7:设置表的属性值自动增加
每次插入新数据时,系统自动生成字段的主键值,可以通过为主键添加auto_increment关键字来实现
MySql中,auto_increment初始值为1,每次增加一条记录,字段值自动增加1,一个表只能有一个字段使用auto_increment
语法规则如下:
字段名 数据类型 auto_increment
eg:定义数据表tb_emp8,指定员工编号自动自增
create table tb_emp8
(
id int(11) primary key auto_increment,
name varchar(15) not null,
deptId int(11),
salary float,
constraint fk_emp_dept5 foreign key(deptId) references tb_dept1(id)
)
4.2:查看数据表结构
4.2.1: 查看表基本结构语句Describe
语法规则如下:
describe 表名 或者简写: desc 表名
4.2.2: 查看详细结构语句 show create table
show create table 可以显示创建表时的create table 语句
语法规则如下:
show create table <表名>
4.3: 修改数据表
4.3.1: 修改表名
语法规则如下:
alter table <旧表名> rename[to] <新表名>
eg:将表tb_dept3修改为为td_deptment3
alter table tb_dept3 rename td_deptment3

4.3.2:修改字段的数据类型
语法规则如下:
alter table <表名> modify <字段名> <数据类型>
eg:将数据表tb_dept1中的name字段的数据类型有varchar(22)修改为varchar(30)
4.3.3:修改字段名
语法规则如下:
alter table <表名> change <旧字段名> <新字段名> <新数据类型>
eg:将数据表中tb_dept1中的location字段名称修改为loc
alter table tb_dept1 change location loc varchar(60)
4.3.4:添加字段
语法规则如下:
alter table <表名> add <新字段> <数据类型> [约束条件][first][alter 已存在字段名]
新字段为需要添加的字段名称,first为可选参数,作用是将新添加的字段设置为表的第一个字段;after为可选参数,其作用是将新添加的字段添加到指定的"已存在字段名"的后边
eg: 在数据表tb_dept1中添加一个没有完整性约束的int类型的字段managerId(部门经理编号),SQL语句:
alter table tb_dept1 add managerId int(11)
eg2:在数据表tb_dept1中添加一个不能为空的varchar(12)类型的字段column1
alter table tb_dept1 add column1 varchar(12) not null
4.3.5:删除字段
语法规则如下:
alter table <表名> drop <字段名>
eg:删除表tb_dept1中column1的字段
alter table tb_dept1 drop column1
4.3.6:修改字段的排列位置

4.3.7: 更改表的存储引擎

4.3.8: 删除表的外键约束
语法规则如下:
alter table <表名> drop foreign key <外键约束名>
eg:删除数据表tb_emp9中的外键约束
创建表tb_emp9
create table tb_emp9
(
id int(11) primary key,
name varchar(25),
deptId int(11),
salary float,
constraint fk_emp_dept foreign key (deptId) references tb_dept1(id) 
)
删除外键约束
alter table tb_emp9  drop foreign key fk_emp_dept




4.4:删除数据表

4.4.1:删除没有被关联的表

4.4.2:删除被其它表关联的主表


4.5:综合案例----数据表的基本操作



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值