day02 数据类型和DML 数据操作语言 (增,删,改)

数据类型

1.数值类型
#整数类型 tinyint,smallint,mediumint,int,bigint
#占用字节为 1 2 3 4 8
#小数类型 float(M,D),double(M,D),decimal(M,D)
#其中 M 称为精度,表示总共的位数; D 称为标度,表示小数的位数。

#2.日期类型
year, date, time, datetime, timestmap
#格式 2020 2020-8-2 16:31:00 date+time date+time
#占用字节 1 3 3 8 4

#datetime和timestmap的区别
#a.datetime的系统默认值是null,而timestmap的系统默认值是当前时间now();
use mydb1;
create table t_time(
	a datetime,
    b timestamp
);
insert into t_time (a) values (now());
insert into t_time (b) values (now());
select *from t_time;

#b.datetime存储额时间与时区无关,而timestmap与时区有关.
set time_zone ='+10:00'; #设置时区
select *from t_time;
set time_zone ='+8:00';
select * from t_time;

2.字符类型
#char(M),varchar(M),tinytext,tezt,mediumtext,longtext,enum,set
char(M) 固定场字符串和 varchar(M) 变长字符串的区别
eg: char(10): “hello” --> 10, varchar(10): “hello” --> 6

#enum:枚举(单选)
create table t_enum(
	gender enum('male','female')
);
insert into t_enum value('male');# Y
insert into t_enum values('female'); # Y
insert into t_enum values('male,female'); # N
insert into t_enum values('transgender'); # N
select * from t_enum;
#ENUM 类型总有一个默认值,当ENUM 列声明为NULL,则默认值为NULL。如果 ENUM 列被声明为 NOT NULL,则其默认值为列表的第一个元素。
create table t_enum1(
	a int,
    gender enum('male','female')
);
insert into t_enum1 (a) values (1);
insert into t_enum1 (gender) values('female');
select * from t_enum1;

create table t_enum2 (
	a int,
    gender enum('male', 'female') not null
);
insert into t_enum2 (a) values (1);
insert into t_enum2 (gender) values ('female');
select * from t_enum2;

#set:集合(多选)
create table t_set(
	hobbies set('a','b','c','d')
);
insert into t_set values ('a'); # Y
insert into t_set values ('a,b,c'); # Y
insert into t_set values ('d,b,a'); # Y
insert into t_set values ('d,b,a,d,a'); # Y
insert into t_set values ('x'); # N
insert into t_set values ('a,b,x'); # N
select * from t_set;

3.二进制类型
#bit(M), binary(M), varbinary(M), tinyblob, blob, mediumblob, longblob
#字符串类型存储的字符串(字符),
#二进制类型存储的是二进制数据(字节)。

DML数据操作语言(增,删,改)

#插入数据(上面用到了一些插入数据)
– 插入的数据应与字段的数据类型相同。
– 数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。
– 在values中列出的数据 。
– 字符串和日期型数据应包含在单引号中。
– 插入空值 insert into table value(null)

use mydb1;
create table t_user(
	id int,
    name varchar(255),
    age int,
    gender enum('female','male')
);
insert into t_user values (1,'朽木白哉',16,'male');
insert into t_user values (2,'浦原喜助',null,'male');
insert into t_user values ('abc',null,'male'); # N
insert into t_user (id,name) values (3,'京乐春水');
insert into t_user (name,id) values ('更木剑八',4);
insert into t_user (id,name) values (5,'日番谷'),(6,'狐狸'),(7,'医生');
select *from t_user;
#复制表
create table user(
	id int,
    name varchar(255),
    age int,
    gender enum('female','male')
);
insert into user(select *from t_user);
select * from user;
show tables;
#更新数据
#安全模式(处于安全模式不能增删改)
show variables like '%safe_update%';#查看安全模式状态
SET SQL_SAFE_UPDATES = 0;#关闭
SET SQL_SAFE_UPDATES = 1;#开启
select *from t_user;
# 练习:将朽木白哉的age设置成17
update t_user set age = 17 where id=1;
# 主要事项:不要忘记写where条件,除非你想更新所有记录

#删除数据
# 练习:删除名字为'狐狸'的记录
delete from t_user where name='狐狸';
select * from t_user;
delete from t_user;
show tables;
describe t_user;
-- 	a. 删除的基本单位是记录,如果你想把某条记录的某个字段"删除",应该使用update
--  b. 不要忘记写where条件,除非你想删除所有记录。
--  c. 仅仅是删除数据,不会删除表。删除表应该使用drop table

注:
数据类型的有些例子涉及到了DML

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值