MySQL数据库day20190922
1.dos命令
set names gbk;
2.mysql练习
#创建school数据库:
create database school;
#切换school数据库:
use school;
# primary key : 主键约束,不可重复
# auto_increment : 自动增长
# not null : 非空约束
# default : 默认约束
# unique : 唯一约束,不可重复
# comment : 注释
# foreign key : 外键约束
/*
在从表中直接定义外键约束语法:
foreign key(从表中的外键) references 主表(主表主键)
*/
#创建学生表,该学生表的数据存储引擎是myisam:
create table if not exists student(
studentno int(4) primary key auto_increment not null comment '学号',
loginpwd varchar(20) not null comment '密码',
studentname varchar(20) not null comment '学生姓名',
sex char(2) default '男' not null comment '性别',
gradeid int(11) not null comment '年级编号',
phone varchar(50) comment '联系方式,允许为空',
address varchar(255) comment '地址,允许为空',
borndate datetime not null comment '出生日期',
email varchar(50) comment '邮箱账号,允许为空',
indentitycard varchar(18) unique comment '身份证号',
foreign key(gradeid) references grade(gid)
)comment='学生表' engine='myisam';
#创建学生表,默认不写,该学生表的数据存储引擎是innodb:
create table if not exists student(
studentno int(4) primary key auto_increment not null comment '学号',
loginpwd varchar(20) not null comment '密码',
studentname varchar(20) not null comment '学生姓名',
sex char(2) default '男' not null comment '性别',
gradeid int(11) not null comment '年级编号',
phone varchar(50) comment '联系方式,允许为空',
address varchar(255) comment '地址,允许为空',
borndate datetime not null comment '出生日期',
email varchar(50) comment '邮箱账号,允许为空',
indentitycard varchar(18) unique comment '身份证号',
foreign key(gradeid) references grade(gid)
)comment='学生表';
##添加一条测试数据
insert into student(loginpwd,studentname,sex,gradeid,borndate) values('123','张三','男',1,'2000-10-10');
insert into student(loginpwd,studentname,sex,gradeid,borndate) values('123','张无','女',10,now());
##创建年级表
create table if not exists grade(
gid int(11) primary key auto_increment not null comment '主键,年级编号',
gname varchar(32) comment '年级名称'
);
## 添加测试数据
insert into grade(gname) values('s1');
insert into grade(gname) values('s2');
3.当前mysql数据库默认的存储引擎是innodb
查看当前数据库所有存储引擎:
show engines;
查看某张表的存储引擎:
show table status from 数据库名 where name='指定表名称';
mysql
#作业:新建subject表
create table if not exists subject(
subjectno int(11) comment '课程编号',
subjectname varchar(50) not null comment '课程名称',
classhour int(4) not null comment '学时',
gradeid int(4) not null comment '年级编号'
)comment='课程表' engine='myisam';
清楚定时器:cleartimeout(timeout[i]);
一.dml语句: 数据操作语言
1.1. insert语法:
新增单条数据语法:
insert into 表名[(字段1,字段2,...,字段n)] values('值1','值2',...,'值3');
新增多条数据语法:
inser into 表名[(字段1,字段2,...,字段n)]
values('值1','值2',...,'值3'),
('值1','值2',...,'值3'),
('值1','值2',...,'值3');
新增测试数据:
insert into grade(gname) values('s1');
insert into grade(gname) values('s2'),('y2'),('课工场'),('ui');
insert into grade(gname) values('在dos命令添加中文数据,出现中文添加失败在dos命令添加中文数据,出现中文添加失败, 设置命令: set names gbk');
查询语句:
select * from grade;
1.2. 删除语法:
问题:delete,drop,truncate的区别?
delete dml语句,只删除表中数据,不会重置自增列
delete from 表名 [where 条件];
drop删除语法 : ddl语句,删除整张表
drop table [if exists] 表名;
truncate 删除语法: 删除表中数据,重新计算自增列
truncate table 表名;
1.3.修改语法
update 表名 set 字段1 = '值1',字段2 = '值2',...,字段n = '值n'
[where 条件]
二、dql语句 数据查询语言
语法: select 字段列表 from 表名
[where 条件]
1.去重重复数据: distinct
2.给字段列、表定义别名 : [ as ]
select distinct(studentname) as 学生姓名,sex 性别 ,phone 联系方式 from student s;
3.模糊查询方式一
select distinct(studentname) as 学生姓名,sex 性别 ,phone 联系方式 from student s
where studentname like '%李%';
4.模糊查询方式二
select studentno,studentname as 学生姓名,sex 性别 ,phone 联系方式 from student s
where studentname like '_李_';
5.根据指定学号(1011,1012,1013,1033)查询学生信息
5.1.between ... and :查询连续区号
select studentno,studentname as 学生姓名,sex 性别 ,phone 联系方式 from student s
where studentno between 1011 and 1013;
5.2. or
select studentno,studentname as 学生姓名,sex 性别 ,phone 联系方式 from student s
where studentno = 1011 or studentno = 1012 or studentno = 1013 or studentno = 1033;
5.3. in
select studentno,studentname as 学生姓名,sex 性别 ,phone 联系方式 from student s
where studentno in(1011,1012,1013,1033);
# 添加测试数据
insert into student(studentno,studentname,sex,gradeid,phone,address,email,indentitycard,loginpwd,borndate)
values(1031,'王李','男',1,'13500000001','北京海淀区中关村大街1号','guojing@bdqn.cn','450323198612111021','222',now()),
(1032,'文李才','男',4,'13500000012','河南洛阳号','liwencai@bdqn.cn','450323198112311021','123',now()),
(1033,'李梅','女',3,'13500000025','上海卢湾区','limei@bdqn.cn','450323198612311021','223',now());
三.将数据库中的数据导出(数据备份)
1.dos命令备份:
mysqldump -uroot -p 数据库 [指定数据表] >指定磁盘路径地址:/xxx.sql文件
2.dos命令导入数据
source 导入的sql文件地址
四、##创建年级表
create table if not exists grade(
gid int(11) primary key auto_increment not null comment '主键,年级编号',
gname varchar(32) comment '年级名称'
);
create table if not exists student(
studentno int(4) primary key auto_increment not null comment '学号',
loginpwd varchar(20) not null comment '密码',
studentname varchar(20) not null comment '学生姓名',
sex char(2) default '男' not null comment '性别',
gradeid int(11) not null comment '年级编号',
phone varchar(50) comment '联系方式,允许为空',
address varchar(255) comment '地址,允许为空',
borndate datetime not null comment '出生日期',
email varchar(50) comment '邮箱账号,允许为空',
indentitycard varchar(18) unique comment '身份证号',
foreign key(gradeid) references grade(gid)
)comment='学生表';
注: 建库、建表 、再操作数据;
在dos命令添加中文数据,出现中文添加失败, 设置命令: set names gbk;
上一篇: 芝麻HTTP:Scrapyd的安装
下一篇: java结合email实现自动推送