1.数据库
备注
命令
格外设置
创建数据库
create database mydatabase charset utf8;
创建关键字数据库(需加反引号 ` ` ,尽量少用关键字创建)
create database `database` charset utf8;
创建中文数据库(需 set names gbk;尽量少用中文创建)
create database 中国 charset utf8;
set names gbk;
查看所有数据库
show databases;
查看以information_开始的数据库: _需要被转义
show databases like 'information_%';
删除数据库
drop database informationtest;
进入数据库
use mydatabase;
2.数据表(有些表操作需先进入当前数据库,指令如:use mydatabase;)
创建表
create table if not exists mydatabase.student( -- 显示的将student表放到mydatabase数据库下
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
查看所有表
show tables;
查看以s结尾的表
show tables like '%s';
查看表创建语句
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; -- mysql会自动寻找分号: 语句结束符
将学生表中的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;
删除数据表
drop table class;
插入数据
insert into my_student values(1,'itcast0001','Jim','male'),
(2,'itcast0002','Hanmeimei','female');
插入数据: 指定字段列表
insert into my_student(number,sex,name,id) values
('itcast0003','male','Tom',3),
('itcast0004','female','Lily',4);
插入自增长主键列
alter table `表格名` add column `列名` int not null auto_increment primary key comment '主键' first;
上面语句表示给某个表格添加一个自动增长的主键字段,并且将该字段放在第一列,
如果你想放到其他列后面,可以将上面sql语句中的 first 换成 after `已经有的列名`。
查看所有数据
select * from my_student;
查看指定字段,指定条件数据(可查看一个或多个字段)
select id from my_student where id = 1; -- 查看满足id为1的学生信息
select id,number from my_student where id = 1; -- 查看满足id为1的学生信息
select id,number,sex,name from my_student where id = 1; -- 查看满足id为1的学生信息
更新数据
update my_student set sex = 'female' where name = 'jim'; --将 name 为 jim 中的 sex 改为 female
删除数据
delete from my_student where sex = 'male'; --删除 sex 为 male 的数据
插入数据(中文)
insert into my_student values(5,'itcast0005','张越','男');
--需进行一下设置
-- 修改服务器认为的客户端数据的字符集为GBK
set character_set_client = gbk;
-- 修改服务器给定数据的字符集为GBK
set character_set_results = gbk;
-- 快捷设置字符集
set names gbk;
创建整型表
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,1000,10000,1000000,255);
alter table my_int add int_6 tinyint(1) unsigned;-- 指定显示宽度为1;
insert into my_int values(127,0,0,0,255,255);
alter table my_int add int_7 tinyint(2) zerofill; -- 显示宽度为2,0填充
insert into my_int values(1,1,1,1,1,1,1);
insert into my_int values(100,100,100,100,100,100,100);
创建浮点数表
create table my_float(
f1 float,
f2 float(10,2), -- 10位在精度范围之外
f3 float(6,2) -- 6位在精度范围之内
)charset utf8;
-- 插入数据
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.123456768,123.9876543); -- 小数部分OK
insert into my_float values(123456,1234.12,12345.56); -- 整数部分超出
创建定点数表
create table my_decimal(
f1 float(10,2),
d1 decimal(10,2)
)charset utf8;
-- 插入数据
insert into my_decimal values(12345678.90,12345678.90); -- 有效数据
insert into my_decimal values(1234.123456,1234.1234356); -- 小数部分超出:ok
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
)charset utf8;
-- 插入数据
insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',2015);
-- 时间使用负数
insert into my_date values('2015-9-28 11:50:36','2015-9-28','-11:50:54','2015-9-28 11:51:08',2015);
insert into my_date values('2015-9-28 11:50:36','2015-9-28','-211:50:54','2015-9-28 11:51:08',2015);
insert into my_date values('2015-9-28 11:50:36','2015-9-28','-2 11:50:54','2015-9-28 11:51:08',2015); -- -2过去2天:48
-- year可以使用2位或者4位
insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',69);
insert into my_date values('2015-9-28 11:50:36','2015-9-28','11:50:54','2015-9-28 11:51:08',70);
-- timestamp: 修改记录
update my_date set d1 = '2015-9-28 11:55:45' where d5 = 2069;
创建枚举表
create table my_enum(
gender enum('男','女','保密')
)charset utf8;
-- 插入数据
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_set(
hobby set('篮球','足球','乒乓球','羽毛球','排球','台球','网球','棒球')
-- 足球 台球 网球
-- 集合中: 每一个元素都是对应一个二进制位,被选中为1,没有则为0: 最后反过来
-- 0 1 0 0 0 1 1 0
-- 反过来 01100010 = 98
)charset utf8;
-- 插入数据
insert into my_set values('足球,台球,网球');
insert into my_set values(3);
端口号查询指令:show global variables like 'port'
image.png
整理不容易,觉得有用的小伙伴点个小红心就行😄,么么哒。