mysql_入门使用

登录

mysql -u mysql -p  
或者 
mysql -u mysql -p bank  # bank是要用的库

执行sql脚本

source /home/mysql/LearningSQLExample.sql;

查看当前时间

select now();select now() from dual;  # 为了与oracle兼容

常用数据类型

boolean
char
varchar
int
float(p, s)  # p, s用来指定精度, p指定允许的数字总位数, s指定小数点右边允许的位数
double(p, s) 
decimal(p, s)  # 没有浮点数的精度问题 p最大值65, s最大值30
date  # YYYY-MM-DD
datetime  # YYYY-MM-DD HH:MI:SS
timestamp  # YYYY-MM-DD HH:MI:SS  可以由mysql自动赋值, 最大值2037-12-31
year  # YYYY  1901-2155
time  # 可以存储消耗的时间  HHH:MI:SS, 范围是 -838:59:59 ~ 838:59:59
enum

建表语法示例

create table person(
    person_id int unsigned auto_increment,  # 自增
    name varchar(20),
    gender enum('M', 'F'),
    brith_date date,
    constraint pk_person primary key (person_id)  # 主键
);


create table food(
    person_id int unsigned,
    food varchar(200),
    constraint pk_food primary key (person_id, food),
    constraint fk_food foreign key (person_id) references person (person_id)  # 外键, 当person表中没有某个person_id时, food表中也不能有
);

alter

alter table person MODIFY person_id int unsigend auto_increment;
这句话实际上是重新定义了person表的person_id列

插入日期(date)格式数据

insert into person (name, gender, brith_date) values('abc', 'M', '2018-1-1');
insert into person (name, gender, brith_date) values('cde', 'M', str_to_date('2018-1-1', '%Y-%c-%d'));  # %Y年, %c月, %d日, %H小时, %i分钟, %s秒

distinct

数据库执行distinct的时候要对结果集先排序, 这对大的结果集来说是相当耗时的

group by

根据列值对数据进行分组

having

对分组数据进行过滤

union

连接多个数据集, 对结果排序并去除重复项

union all

连接多个数据集, 保留重复项

intersect, intersect all

交集, mysql中可能未实现此操作

except, except all

差集, mysql中可能未实现此操作

其他

构造日期数据
str_to_date('2018-01-02 12:12:12', '%Y-%M-%d %H:%i:%s')

使用内置函数构造当前日期数据
select current_date(), current_time(), current_timestamp();

当使用not in 或者 <> 时, 要确保值集中不存在null, 任何值与null比较的结果都是未知的

位图索引可以比较好处理低基数的列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值