MySQL 学习记录- 数据库 数据表 基本操作 Day16

数据库

(1)增

create database my_database default charset utf8;

(2)删

drop database my_database;

(3)查

show databases;

(4)选

use my_database;

数据表

(1)增

create table t1(
id int not null auto_increment primary key,
name varchar(5),
age char(1),
gender char(1),
department_id int
constraint fk_t1_t2 foreign key(department_id) references t2(id)
) engine=innodb auto_increment=1 default charset=utf8

#innodb 支持实物,原子性操作,可以回滚
#myisam 与innodb相反
#not null 表示不为空
#auto_increment 表示自增,表中只能有一个自增列
#primary key 主键,表示约束,不为空且不重复,有加速查找作用
一个表只能有一个主键,主键可以由多列组成,当由一列组成时,值必须是唯一,当时多列组成时,组合必须是唯一。
##foreign key 外键,把表1的某列或者多列与另一个表的某列或者多列进行关联起来,并约束表1只能是表2的指定内容(与excel里的插入下拉表同理)
**只有当主键是由两列组成时,外键可以由两列组成并进行关联约束。
**在表与表之间外键名不能够重复,所以命名格式最好是fk_表1名_列名_表2名_列名。

数据类型:数字,字符串,时间
数字:(整数部分)int,bigint,tyinint,(小数部分)float,double,decimal[精确的,推荐使用]
字符串:char(10)查找速度快[定长时用合适] *****
varchar(10)节省空间[不定长时用合适] *****
PS:mysql的数据优化层面上要把定长数据列往前放
时间类型:datetime

(2)删

drop table t1;  #删除有外键约束的表时,要把外键先删除才可以删除表

启动外键约束:set foreign_key_checks=1;
禁用外键约束:set foreign_key_checks=0;
查看当前外键是否有启动:select @@foreign_key_checks;

(3)改

alter table new_t1 rename t1;                 			#修改表名
alter table t1 modify age int;							#修改字段的数据类型
alter table t1 modify height int first					#把字段移到第一列
alter table t1 modify height int after gender			#把字段移到指定字段的后一列
alter table t1 change department_id dpm_id smallint;	#修改字段名和字段类型
alter table t1 add QQnumber int(10);					#增加新字段
alter table t1 add height int not null;					#增加新字段并设置不为空的约束条件
alter table t1 add weight int first;					#增加新字段并放置到第一列处
alter table t1 add mail varchar(15) after gender;		#增加新字段并放置到指定列的后一列处
alter table t1 add primary key(id)						#增加主键
alter table t1 add constraint fk_t1_t2 foreign key(workid) references department(id)
														#增加外键
alter table t1 drop QQnumber;							#删除字段
alter table t1 engine=innodb;							#修改表的引擎
alter table drop foreign key fk_t1_t2;					#删除外键
alter table drop primary key(id);						#删除主键
alter table t1 auto_increment=20						#修改自增列的初始值

补充自增:mysql:自增步长基于会话级别(不能给某张表设置步长,每登录一次mysql就是一次会话,重新登录有恢复默认步长为1)
sql server:自增步长基于表级别
1.会话级别:查看全局变量 show session variables like ‘auto_inc%’; ***
设置会话步长 set session auto_increment_increment=2; ***
设置自增起始值 set session auto_increment_offset=10;
2.全局级别:查看全局变量 show global variables like ‘auto_inc%’;
设置会话步长 set global auto_increment_increment=22; 这个一旦设置了,以后每次登录 mysql都是这个步长,不要轻易使用
设置自增起始值 set global auto_increment_offset=10; 这个一旦设置了,以后每次登录mysql都是这个起始值

(4)查

show tables;		#查看数据库里有哪些表
desc t1;				#查看表结构
show create table student \G;		#查看创建表时的SQL语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值