-- 创建表
-- 新增数据表 中括号可以去掉
-- create table [if not exists] 表名(字段名字 数据类型
-- ……
-- 字段名字 数据类型
-- )[表选项];
-- if not sxists 表示如果没有这个表才会执行,如果有的话就不知执行
create table if not exists students(-- varcahr 表示字符串
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8
-- 显示的将student表放到mydatabase数据库下面
create table if not exists mydatabase.student (
name varchar(10),
gender varchar(10),
number varchar(10),
age int
)charset utf8;
-- 创建数据表
-- 进入数据库
use mydatabase;
--创建表
create table class (
name varchar (10),
roomvarchar (10)
) charset utf8;
-- 查看所有表
show tables;
-- 查看以s结尾的表
show tables like '%s';
-- 查看表的创建语句:
--\g 等价于;
--\G 将查到的结构旋转90度变成纵向排列,方便观察
show create table student;
show create table student\g
show create table student\G
-- 查看表结构
desc class;
describe class;
show columns from class;
-- 重命名表 将students 变成 student
-- rename table 旧表明 to 新表名
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 表名 change 旧字 新字 类型
alter table my_student change gender sex varchar (10);
-- 删除学生表中的年龄字段
alter table my_student drop age;
-- 删除数据表
drop table class;
-- 插入数据 顺序比可以打乱,必须按照数据库里面的数据
insert into my_student values
(1,'bc20200001','jim','male'),
(2,'bc20200002','Lily','female');
-- 插入数据:指定字段列表 顺序可以打乱
insert into my_student (number,sex,name,id)values
('ba20200003','male','Tom',3),
('ba20200004','female','LUcy',4);
-- 查看所有数据
select * from my_student;
-- 查看指定字段、指定条件的数据
-- 查看满足ID为1的学生信息
select id,number,sex,name from my_student where id=1;
-- 更新数据 如果不加where就是跟新全部
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);
-- 有效数据
values('a','b','199','f');
-- 无效数据:类型限定
insert into my_int
values(255,10000,10000,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);
--浮点数表
create table my_float(
f1 float,
f2 float(10,2),
--10位在精度范围之外
f3 float(6,2))charset utf8;
--6位在精度范围之内
-- 插入数据
insert into my_float
values(1000.10,1000.10,1000.10);
insert into my_float
values(12334567890,12345678.90,1234.56);
insert into my_float
values(3e38,3.01e7,1234.56);
insert into my_float
values(999999999,9999999999.99,9999.99);-- 后两个是最大值
-- 超出长度插入数据
insert into my_float
values(123456,1234.12345678,123.9874563);
--小数部分可以超出长度
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.123456);
-- 小数部分可以超出长度
-- 查看警告
show warnings;
-- 插入数据
insert into my_decimal values
(99999999.99,99999999.99);
--没有问题
insert into my_decimal values
(99999999.99,99999999.999);
-- 进位超出范围
-- 创建时间日期表
create rable my date(
d1 datetime,
d2 date,
d3 time,
d4 timestamp,
d5 year
)charset utf8;
-- 插入数据
insert into my_date values('2020-02-12 10:29:30','2020-02-12','10:29:30','2020-02-12
10:29:30',2020);
-- 时间使用负数
insert into my_date values