数据库复习

  • sql对大小写不敏感

  • sql可以分2个部分:数据操作语言(DML)和数据定义语言(DDL):

    DML:查询和更新的指令,即增删改查(CRUD)

    DDL:创建和删除表格,定义索引(键),规定表之间的链接,已经施加表间的约束:

    • CREATE DATABASE - 创建新数据库
    • ALTER DATABASE - 修改数据库
    • CREATE TABLE - 创建新表
    • ALTER TABLE - 变更(改变)数据库表
    • DROP TABLE - 删除表
    • CREATE INDEX - 创建索引(搜索键)
    • DROP INDEX - 删除索引
  • select distinct 选取唯一的不同的值

  • order by 排序,默认是升序排列,DESC降序
    1.中文排序:如果数据表tbl的某字段name的字符编码是latin1_swedish_ci
    select * from tbl order by birary(name) asc ;
    如果数据表tbl的某字段name的字符编码是utf8_general_ci
    SELECT name FROM tbl ORDER BY CONVERT( name USING gbk ) COLLATE gbk_chinese_ci ASC
    2.只按日期排序,忽略年份:
    select date, description from table_name order by month(date),dayofmonth(date);
    注意:单纯使用dayofyear来排序会导致错误,如2-29与非闰年的3-1日同等级
    3.排序点分式IP
    select ip from table_name order by inet_aton(ip);
    或者在设计表时就使用 int unsigned 来表示ip。
    4.将某列中特定值排在最前
    例如想把表中lulu的名字排在最前显示,其他按字母排序
    select name from table_name order by if(name='lulu',0,1),name ;
    也可以把if的条件根据需要换成相应的语句。
    5.将某列内容按照用户自定义的顺序排序
    例如想把表中的名字按lulu,xixi,baba,mama的非常规顺序排序输出:
    select name from table_name order by field(name,'lulu','xixi','baba','mama');
    6.对枚举类型排序
    枚举类型默认为数字排序,如果希望以字符串形式排序。
    select name from table_name order by cast(name as char);
    如果希望更改enum的排序默认顺序,可以alter table
    alter table table_name modify name enum('lulu','xixi','mama','baba');
    7.按csv类型的字符串的某字串排序
    例如某列m_str内容是形如abc-321-mno-jkl的形式,希望对第二列进行排序
    select m_str from table_name order by substring_index(substring_index(m_str,'-',2),'-',-1);

  • top/limit 规定要返回的记录的条数

  • like 包含,跟where同时出现,配合通配符一起使用,like n打头:‘n%’, n结尾:’%n’, 中级包含nn:’%nn%’ ;加上not关键字, not like,不包含

    通配符描述
    %替代一个或多个字符
    _仅替代一个字符
    [charlist]字符列中的任何单一字符
    [^charlist]或者[!charlist]不在字符列中的任何单一字符
  • in 在where中规定多个值,类似于“=”

  • as 可以为表名和列名指定别名

  • JOIN: 如果表中有至少一个匹配,则返回行,INNER JOIN 与 JOIN 是相同的。

  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

  • FULL JOIN: 只要其中一个表中存在匹配,就返回行,在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。

  • UNION 操作符用于合并两个或多个 SELECT 语句的结果集。如果允许重复的值,请使用 UNION ALL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值