mysql option 类型_mysql之数据类型与表操作

关系数据库的注释

-- 单行注释

/* 多行注释 */

数据类型

数值

整数 只能保存整数,如果是小数,则自动四舍五入取整。

mediumint

smallint

tinyint(6) zerofill

int(8)

bigint

decimal(8,0)

小数实型

float(p,s)

numeric(p,s)

decimal(p,s) decimal

double(p,s)

字符串

char() 固定长度字符串 手机号 学号 身份证号

sno char(12)

insert into 1 6

varchar() 可变长度字符串 家庭地址

varchar(12)

text

longtext

日期 时间类型

日期 date 2020-06-28

时间 time 16:48:50

date

time

datetime

timestamp

日期时间 datetime 2020-06-28 16:48:50

复合数据类型

enum 枚举 enum('计算机科学','英语','会计')

enum('Y','N')

set 集合

set('java','php','python','javascript','mysql')

'java' true

'php,java,mysql' true

'abc,java,ok' false

mysql 5.7新的json 类型 NoSQL类型

二进制数据类型

如果将一张图片文件,保存到数据库,必须使用二进制类型。

longblob

表操作 建立表

create table if not exists 表名(

字段名 数据类型 unsigned zerofill auto_increment 相关的约束,

)引擎 字符集 自增;

删除表

drop if exists table 表名,表2,表3;

表的约事,字段类型的修饰

unsigned zerofill auto_increment 自增一般和主键

not null 不能为空

默认值

default 18

default '郑州'

default '男'

主要约束

PK FK UK 默认值 default 非null not null

PK primary key 主键 唯一的,必须填写,不能为null 空 一表只能有一个主键

FK foreign key 外键一般两个表以表

uk unique 唯一约束

sno char(5) primary key

id int unsigned auto_increment,

primary key(id)

primary key(id,name) 复合主键,一个主键控制两列或多列

foreign key 外键操作

select host,user,plugin from mysql.user;

-- 建立老师信息表

create table teacher(

tid int unsigned auto_increment,

tname varchar(15) not null,

primary key(tid)

)engine=innodb charset=utf8 auto_increment=1;

-- 插入数据

insert into teacher(tname) values('李老师'),('张老师'),('周老师');

insert teacher(tname) values('李老师');

select * from teacher;

/* 建立学生信息表 */

create table student(

sid int unsigned auto_increment,

sname varchar(15) not null,

stid int unsigned,

primary key(sid)

/*foreign key(stid) references teacher(tid)*/

/* constraint fk foreign key(stid) references teacher(tid) on delete cascade*/

)engine=innodb charset=utf8 auto_increment=1;

-- 给student表增加建立外键

alter table student add foreign key(stid) references teacher(tid);

-- alter table student add foreign key(stid) references teacher(tid) on delete set null on update cascade;

drop table student;

select * from teacher;

select * from student;

insert into student values(null,'李四',null),(null,'jack',2),(null,'张三',5),(null,'李强',5);

select * from student;

select * from teacher;

delete from teacher where tid = 3;

select 语句查询

select * from student;

select * from xxx;

select 条件

= > < >= <= != <>

-- 随机查询两条记录 (此语句对于大型数据不合理)

select name,score,age from stu order by rand() limit 2;

--

select * from mysql.user;

select 10*10,10/5,10+5;

-- = > >= < <= != <>

select * from stu where name = '李四';

select * from stu where age != 20;

update stu set address = null where id = 5;

-- is null is not null

select * from stu where address is null;

select * from stu where address is not null;

-- in not in

select * from stu where dept in ('英语');

select id,name from stu where id not in (1,2,4,6);

-- between and not between and

select id,name,age from stu where age not between 18 and 20;

select id,name,age from stu where age <18 or age >20;

select id,name,age from stu where age between 18 and 20;

select id,name,age from stu where age >=18 and age <=20;

-- and &&

-- or ||

-- not 相当于java ! 非

select * from stu where sex = '女';

-- 模糊查询 like % 代表0个或多个任意字符 _ 一个任意字符

select * from stu where name like '张%';

select * from stu where name like '_三_';

select * from stu where name like '%丰%';

select * from stu where name like '李%';

-- 正则表达式条件

select * from stu where name regexp '^..$';

查询排序 order asc desc;

select * from stu;

查询聚合 聚集 集合函数

-- 查询班级的总人数

select count(*) from stu;

-- 查询多少个专业

-- 查询统计专业的个数 count(

select count(distinct dept) from stu;

select distinct * from stu;

-- 查询分组统计 group by order by where limit

group by 要集合函数配置

select max(score) from stu where sex = '男';

select max(score) from stu where sex = '女';

UML

E-R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值