浓缩的精华-MySQL

1.安装,请参考我以前写的文章:Linux-MySQL安装说明

2.SQL语句

    2.1:DDL(数据库定义语言)

        创建数据库:create database 库名;

        删除数据库:drop database 库名;

        创建表:create table 表名(column_name_1 column_type_1 约束条件, column_name_2 column_type_2 约束条件, ...);

        删除表:drop table 表名;

        修改表:

            alter table 表名 modify[column] column_definition[first|after col_name] -- 修改字段,e.g:alter table emp modify ename varchar(20);

            alter table 表名 add[column] column_definition[first|after col_name] -- 添加字段,e.g:alter table emp add column age int(3);

            alter table 表名 drop[column] col_name -- 删除字段,e.g:alter table emp drop column age;

            alter table 表名 change[column] old_col_name column_definition [first|after| col_name] -- 字段改名,e.g:alter table emp change age age1 int(4);

    2.2:DML(数据库操纵语言)

        插入:insert into 表名(field1, field2,...) values(value1, value2,...);

        更新:update 表名 set field1 = value1, field2 = value2,... [where ...]

        删除:delete from 表名 [where ...]

        查询:select * from 表名[where ...]

    2.3:DCL(数据控制语句):grant select, insert on 库名.* to 'lomis'@'localhost' identified by '123';

3.数据类型:数值、日期时间、字符串、枚举和set。

4.运算符

    4.1:算术=> +,-,×,/,%。

    4.2:比较

运算符作用描述
=等于
<>或!=不等于
<=>NULL安全的等于
<小于
<=小于等于
>大于
>=大于等于
between...and存在于指定范围
in存在于指定集合中
is null为NULL
is not null不为NULL
like通配符匹配
regexp 或rlike正则表达式匹配,e.g:select 'abcdef' regexp 'ab', 'abcdefg' regexp 'k'。-- 当abcdef中包含ab则返回1,否则返回0,后面同理。

    4.3:逻辑运算=> not(!),and(&&),or(||),xor。

    4.4:位运算=> &, |, ^, ~, >>, <<。

5.常用函数

    5.1:字符串

函数功能描述
concat(s1, s2, ..., sn)

连接s1, s2, ..., sn

insert(str, x, y, instr)将str从x的位置起,y个长度的字符串替换为instr
lower(str)将str变为小写
upper(str)将str变为大写
left(str, x)返回str最左边的x个字符
right(str, x)返回str最右边的x个字符
lpad(str, n, pad)用pad对str最左边进行填充,直到成都为n
rpad(str, n, pad)用pad对str最右边进行填充,直到长度为n
ltrim(str)去掉str行头的空格
rtrim(str)去掉str行尾的空格
repeat(str, x)返回str重复x次的结果
replace(str, a, b)用b替换str中的a
strcmp(s1, s2)比较s1和s2
trim(str) 去掉str头尾的空格
substring(str, x, y)返回从str的x位置起y个长度的字符

    5.2:数值

        abx(x):返回x的绝对值。

        ceil(x):返回大于x的最小整数。

        floor(x):返回小于x的最小整数。

        mod(x, y):返回x/y的模。

        rand():返回0~1内的随机数。

        round(x, y):返回x的四舍五入有y位小数的值。

        truncate(x, y):返回数字x阶段为y位小数的结果。

    5.3:日期

        curdate():当前日期。

        curtime():当前时间。

        now():当前日期和时间。

        unix_timestamp(date):date的unix时间戳。

        from_unixtime:返回unix时间戳的日期。

        week(date):date为一年中的第几周。

        year(date):date的年份。

        hour(time):time的小时值。

        minute(time):time的分钟值。

        monthname(date):date的月份值。

        date_format(date, fmt):返回字符串fmt格式化日期date值。

        date_add(date, interval expr type):一个日期或时间加上一个时间间隔的时间值。

        datediff(expr1, expr2):开始时间expr1和结束时间expr2之间的天数。

    5.4:流程

        if(value, t f):value真返回t,假返回f。

        ifnull(value1, value2):value为空返回value2,不为空返回value1。

        case when [value1] then [result] ... else [default] end:如果value1真返回result,否则返回default。

        case [expr] when [value1] then [result] ... else [default] end:expr等于value1返回result,否则返回default。

    5.5:其他

        database():数据库名;version():数据库版本;user():登录的用户名;inet_aton(ip):ip的数字表示;inet_ntoa(num):数字转为ip。

6.存储引擎

    MyISAM:不支持事务和外键;访问速速快,对事务完整性没要求。

    InnoDB:支持事务;支持自增ID和外键约束。有共享表空间存储和多表空间存储两种方式。

    MEMORY:使用内存中的内容创建表。每个表对应一个磁盘文件。访问快,默认使用HASH索引,但关闭后,表中数据会丢失。

    MERGE:一组MyISAM表的组合,一组表结构必须完全相同。

    TokuDB:第三方开源引擎。使用Fractal树索引保证高效插入性能;压缩比InnoDB高近10倍,提供了主从延迟消除技术。

7.索引

    创建:create[unique|fulltext|spatial] index index_name[using index_type] on tbl_name(index_col_name, ...), e.g:create index cityname on city(city(10))。

    删除:drop index Index_name on tbl_name。e.g:drop index cityname on city。

8.视图

    创建:create or replace view demo_view as select * from demo [where ...];

    删除:drop view view_name;

9.存储过程

    创建:create procedure sp_name(参数[也可以为空参数])

    删除:drop procedure sp_name;

10.触发器

    创建:create trigger trigger_name trigger_time trigger_event on tbl_name fro each row trigger_stmt;

    删除:drop trigger trigger_name;

    

 

转载于:https://my.oschina.net/u/128964/blog/1837389

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值