MySQL基本操作2

第二章

这一章主要采用举实例....

create table my_int

(int_1 int,

int_2 int unsigned,

int_3 tinyint,

int_4 tinyint unsigned );

一.数字类型

整数型,浮点型,定点型,bit(位)类型

insert into my_int values(1000,1000,100,100);

insert into my_int values(1000,-1000,100,100);

desc my_int;

(一)整型

1.零填充(默认使用无符号类型,负数不能用0填充)

create table my_int2

( int_1 int(3) zerofill,

int_2 tinyint(6) zerofill

);

desc my_int2;

insert into my_int2 values(1234,2);

select * from my_int2;

(二)浮点数型(float,double)

create table my_float (f1 float, f2 float );

insert into my_float values(111111,1.11111);

insert into my_float values(1111111,1.111111);

insert into my_float values(1111114,1111115);

insert into my_float values(11111169,11111159);

select * from my_float;

(三)定点数类型

create table my_decimal (d1 decimal(4,2), d2 decimal(4,2));

insert into my_decimal values(1.234,1.235);

insert into my_decimal values(99.99,99.999);

select * from my_decimal;

(四)bit类型

select ASCII('A');

select BIN(65),length(bin(65));

create table my_bit(b bit(7));

insert into my_bit values(65);

select * from my_bit;

select * from my_bit where b=65;

select b'1000001';

二.时间日期类型

1.year类型

create table my_year(y year);

insert into my_year values(2020);

insert into my_year values('0');

select * from my_year;

2.date类型

create table my_date(d date);

insert into my_date values('2021-12-14');

insert into my_date values(current_date);

insert into my_date values(now());

select * from my_date;

insert into my_date values('20210101'),('2021-03-19'),(201127);

3.time类型

create table my_time(t time);

insert into my_time values('231134'),(234521),('2 11:30:50'),('12:30:00');

select * from my_time;

4.datetime类型(日期和时间)

create table my_datetime(d datetime);

insert into my_datetime values (now());

insert into my_datetime values('20211127123432');

select * from my_datetime;

5.timestamp类型(日期和时间)显示和datetime相同,但是取值范围比它小

select current_timestamp;

create table my_timestamp (t1 timestamp, t2 timestamp default current_timestamp on update current_timestamp, t3 timestamp default current_timestamp );

desc my_timestamp;

三.字符串类型

1.char类型和varchar类型

char(4)类型无论插入值得长度是多少,所占用的存储空间是不变的, 但是varchar(4)类型占用的字节数为实际长度加1;

2.text类型(用于保存大文本数据)

3.enum类型

create table my_enum(gender enum('male','female'));

insert into my_enum values('male'),('female');

insert into my_enum values('m');#插入不成功

4.set类型(与枚举类型的区别就是可以选择一个或者多个值来保存)

create table my_set (hobby set('book','game','code'));

insert into my_set values('book'),('game,code');

select * from my_set;

5.binary类型和varBinary类型

create table my_binary (b1 binary(4), b2 varbinary(4) );

insert into my_binary values('abc','xyz');

select * from my_binary;

select b1 from my_binary where b1='abc\0';

select b2 from my_binary where b2='xyz';

select b1 from my_binary where b1='ABC\0';#区分大小写

6.blob类型(区分大小写)

blob类型是根据二进制编码进行比较和排序,而text类型数据是根据文本模式 进行比较和排序的 7.json数据类型是json数组用列表的形式,json对象用元组。 json数据类型的字段以字符串的方式插入数据

约束

一.表级约束(维护数据库的完整性)

默认约束、非空约束、唯一约束、主键约束、外键约束、自增

1.默认约束(用于为数据表中的字段指定默认值)(default)

create table my_defaule (name varchar(10), age int unsigned default 18 );

desc my_defaule;

insert into my_defaule values();

insert into my_defaule(name) values('a');

insert into my_defaule values('b',20);

insert into my_defaule values('c',null);

select * from my_defaule;

(1)删除默认约束和增加默认约束

alter table my_defaule modify age int unsigned;

alter table my_defaule modify age int unsigned default 18;

2.非空约束(字段的值不能为空)

create table my_not_null

(n1 int,

n2 int not null,

n3 int not null default 18 );

desc my_not_null;

insert into my_not_null(n2) values(20);

select * from my_not_null;

(1)删除非空约束

alter table my_not_null modify n2 int;

(2)增加非空约束

alter table my_not_null modify n2 int not null;

3.唯一约束(表中不能出现重复字段)

create table my_unique1

(id int unsigned unique,

username varchar(10) unique

);#列级约束

create table my_unique2

(

id int unsigned,

username varchar(10),

unique(id),

unique(username)

);#表级约束

desc my_unique1;

insert into my_unique1(id) values(1);

(1)添加唯一约束(用索引的方式)

create table my_unique3 (id int );

alter table my_unique3 add unique(id);

(2)删除唯一约束

alter table my_unique3 drop index id;

(3)创建复合唯一约束

 create table my_unique4

(

id int unsigned,

username varchar(10),

unique(id,username)

);

insert into my_unique4 values(1,'23');

insert into my_unique4 values(1,'2');

4.主键约束(唯一标识某条记录)

create table my_primary

(id int primary key,

username varchar(10));

desc my_primary;

(1)删除主键约束

alter table my_primary drop primary key;

(2)添加主键约束

alter table my_primary add primary key(id);

5.自动增长

create table my_auto_increment

(id int unsigned primary key auto_increment,

username varchar(20)

);

desc my_auto_increment;

insert into my_auto_increment(username) values('a'),('b');

select * from my_auto_increment;

(1)修改字自动增长的值

alter table my_auto_increment  auto_increment=10;

(2)删除自动增长

alter table my_auto_increment modify id int unsigned;

(3)添加自动增长

alter table my_auto_increment modify id int unsigned auto_increment;

show variables like 'auto_incre%'; 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值