-- 查看所有数据库
show databases;
-- 连接认证
mysql.exe -h localhost -P 3306 -u root -p
-- -P是端口,-u是用户名,-p是密码,-h主机地址
mysql -u root -p
-- 退出命令
exit、quit、\q
-- 创建数据库
create database mydatabase charset utf8;
-- 创建关键字数据库
create database `database` charset utf8;
-- 告诉服务器当前中文的字符集是什么
set names gbk;
-- 创建中文数据库
create database 中国 charset utf8;
-- 创建数据库
create database informationtest charset utf8;
-- 查看以inforation_开始的数据库(_需要被转义)
show databases like 'information\_%';
show databases like 'information_%'; -- 相当于information%
-- 查看书数据库的创建语句
show create database mydatabase;
show create database `database`;
-- 修改数据库inforationest的字符集
alter database informationtest charset GBK;
-- 删除数据库
drop database 数据库的名字;
-- 创建表
create table if not exists mydatabase.student(
-- 显示的将student表放到mydatabase数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
-- 创建数据表
-- 进入数据库
use mydatabase;
-- 创建表
create table class(
name varchar(10),
room varchar(10)
)charset utf8;
-- char定长字符串
-- varchar不定长字符串
-- 查看所有表
show tables;
-- 查看部分表
-- 查看以s开头的表
show tables like 's%';
-- 查看以s结尾的表
show tables like '%s';
-- 查看表的创建语句
show create table student;
show create table student\g -- g等价于分号
show create table student\G -- 将查到的结构旋转90度
-- 查看表结构
desc class;
describe class;
show columns from class;
-- 重命名表(student表—> my_student)
rename table student to my_student;
-- 修改表选项:字符集
alter table my_student charset = GBK;
-- 给学生表增加ID,放到第一个位置
alter table my_student add column id int first;
-- 将学生表中的number学号字段标出固定长度,且放到第二位(id之后)
alter table my_student modify number char(10) after id;
-- 修改学生表中的gender字段为sex
alter table my_student change gender sex varchar(10);
-- 删除学生表达中的age年龄字段
alter table my_student drop age;
-- 插入数据
insert into my_student value
(1,'bc20190001','jim','male'),
(2,'bc20190001','lili','female')
;
-- 插入数据:制定字段列表
insert into my_student(number,name,sex,id) values
('bc20190001','tom','male',3),
('bc20190001','zhong','male',4);
-- 查看所有数据
select * from my_student;
-- 查看指定字段、指定条件的数据
select id,number,sex,name from my_student where id =1;
-- 更新数据
update my_student set sex='female' where name = 'jim';
-- 删除数据
delete from my_student where sex='male';
-- 创建整型表
create table my_int(
int_1 tinyint,
int_2 smallint,
int_3 int,
int_4 bigint
)charset utf8;
-- 插入数据
insert into my_int
values(100,100,100,100); -- 有效数据
insert into my_int
values('a','b','199','f'); -- 无效数据:类型限制
insert into my_int
values(255,10000,100000,1000000); -- 错误 :超出范围
-- 给表增加一个无符号的类型
alter table my_int add int_5
tinyint unsigned; -- 无符号类型
-- 插入数据
insert into my_int
values(127,10000,100000,1000000,255);
-- 指定显示宽度为1
alter table my_int add int_6
tinyint(1) unsigned;
-- 插入数据
insert into my_int
values(127,0,0,0,255,255);
-- 显示宽度为2,0填充
alter table my_int add int_7
tinyint(2) zerofill;
-- 插入数据
insert into my_int
values(1,1,1,1,1,1,1);
insert into my_int
values(100,100,100,100,100,100,100);
-- 删除字段
alter table my_int drop int_6;
-- 浮点数表
create table my_float(
f1 float,
f2 float(10,2), -- 10位在精度范围之外
f3 float(6,2) -- 6位在精度范围之内
);
-- 插入数据
insert into my_float
values(1000.10,1000.10,1000.10);
insert into my_float
values(1234567890,12345678.90,1234.56);
insert into my_float
values(3e38,3.01e7,1234.56);
insert into my_float
values(9999999999,99999999.99,9999.99); -- 后两个是最大值
-- 超出长读插入数据
insert into my_float
values(123456,1234.12345678,123.9876543); -- 小数部分可以超出长度
insert into my_float
values(123456,1234.12,12345.56); -- 最后一个整数部分超出
-- 创建定点数表
create table my_decimal(
f1 float(10,2),
d1 decimal(10,2)
);
-- 插入数据
insert into my_decimal
values(12345678.90,12345678.90); -- 有效数据
insert into my_decimal
values(1234.123456,1234.123456); -- 小数部分是可以超出
-- 查看警告
show warnings;
-- 插入数据
insert into my_decimal
values(99999999.99,99999999.99); -- 没有问题
insert into my_decimal
values(99999999.99,99999999.999); -- 进位超出范围
-- 创建时间日期的表
create table my_date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
);
-- 插入数据
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','13:38:46','2019-11-21 13:38:46',2015);
-- 时间使用负数
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','-13:38:46','2019-11-21 13:38:46',2015);
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','-213:38:46','2019-11-21 13:38:46',2015);
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','-2 13:38:46','2019-11-21 13:38:46',2015); -- -2表示过去两天,是48小时
-- year可以使用2位或者4位
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','13:38:46','2019-11-21 13:38:46',69);
insert into my_date
values('2019-11-21 13:38:46','2019-11-21','13:38:46','2019-11-21 13:38:46',70);
-- timestamp:修改记录
update my_date set d1=
'2019-11-21 13:46:45' where d5=2069;
-- 创建枚举表 -- 枚举实际上存的是数值
create table my_enum(
gender enum('男','女','保密')
);
-- 插入数据
insert into my_enum
values('男'),('保密'); -- 有效数据
insert into my_enum
values('male'); -- 错误数据,没有该元素
-- 将字段结果取出来进行+0运算
select gender + 0, gender
from my_enum;
-- 数值插入枚举元素
insert into my_enum
values(1),(2);
-- 创建一个班级表
create table my_class(
name varchar(20) not null,
room varchar(20) null -- 代表允许为空,不写默认就是允许为空
);
-- 创建表
create table my_teacher(
name varchar(20) not null comment'姓名',
money decimal(10,2) not null
comment '工资'
);
-- 默认值
create table my_default(
name varchar(20) not null,
age tinyint unsigned default 0,
gender enum('男','女','保密')
default '男'
);
-- 插入数据
insert into my_default(name)
values('哦吼');
insert into my_default
values('男闺蜜',18,default);
-- 增加主键
create table my_pri1(
name varchar(20) not null comment'姓名',
number char(10) primary key
comment '学号: be2019+0001, 不能重复'
);
-- 复合主键
create table my_pri2(
number char(10) comment
'学号: bc20190001',
course char(10) comment
'课程代码:bc25890001',
score tinyint unsigned default 60
comment '成绩',
-- 增加主键的限制:学号与课程号应该是对应的,具有唯一性
primary key(number, course)
);
-- 追加主键
create table my_pri3(
course char(10) not null comment
'课程代码:bc25890001',
name varchar(10) not null comment
'课程名字'
);
-- 第一种方式
alter table my_pri3 modify course char(10) primary
key comment
'课程代码:bc25890001'
;
-- 删除表
drop table my_pri3;
-- 第二种方式
alter table my_pri3 add primary
key(course);
--