day40
-
-
数据库操作
#初始化,5.7版本没有data文件夹,需要自己初始化
mysqld --initialise-secure
#创建数据库
create database 数据库名称;
#查看数据库
show databases;
#使用数据库
use 数据库名
#删除数据库
drop database 数据库名
#修改数据库(在Mysql中没有专门的修改指令,所有只能删库重建)
#关于自增
show session variables like 'auto_inc%'
set session auto_increment_increment = 2
set session
-
数据表
#新建
create table 表名(列名 列类型);
create table t1(id int,name char(32));
#ps:存储引擎 innodb 和 MyIsam 5.5版本以上,默认是Innodb
create table 表明(列名1 列类型) engine=Innodb charset=utf-8;
# auto_increment 自增 primary key 主键索引加快查找速度
create table 表名(
列名1 列类型 auto_increment primary key
)engine=Innodb charset=utf8
#not null(不能为空) default ''(默认值)
create table t1(
id int auto_increment primary key,
name char(32) not null default '',
.....
)engine=Innodb charset=utf8;
#查看某个数据库里的所有数据表
show tables;
desc 表名; 查看表结构
show create table 表名; 查看表的创建过程
#删除数据表
drop table 表名;
#修改数据库表
alter table 表名 change 列名 新列名 列属性 是否为空 默认值;
alter table 表名 add 列名 列属性 是否为空 默认值;
alter table 表名 drop 列名;
#列类型
a.数值型 (根据自己公司的业务来去选择)
int
tinyint(有符号-128~127 | 无符号0~255) unsigned 声明无符号
mediumint(-8388608~8388607 | 0~16777215)
smallint(-32768~32767 |0~65535)
bigint
float(M,D) 浮点型
decimal(M,D) 定点型 比float更加的精准
M: 小数总共多少位
D: 小数点后面几位
b.字符串类型
char:定长 char(32) 这一列的值就是32,不够就浪费掉了 优点:速度快
varcahr: 变长 varchar(32) 节省空间 速度慢
text:文本 范围大 如果存储大量字符,使用text
c.时间类型
date:日期
time:时间
datetime:推荐使用
year:年 -
数据行
#插入
insert into 表名 (列1,列2) values (值1,值2);
insert into student(id,name) values(2,'zs')
#查询
select 列名 from 表名;
select * from sutdnet;
#删除
delete fron 表名;(自增列会延续)
truncate 表名;(自增列会重新开始)
#修改
update 表名 set 列名 = '值'[,列名 = '值'] where 条件 -
外键
constraint fk_userinfo_depart('约束名称') foreign key('外键') references department('关联的键')
-