深入浅出SQL总结

前言

SQL语法是不区分大小写的,但是命名的时候最好注意规范,语法规定用_来代替空格

我是用《深入浅出SQL》这本书来学习的,网上可以查W3School~

基础语法

语句
  1. CREATE
        creatr database my_db;
        use my_db;
        create table my_info
          (
            my_id int not null auto_increment,
            my_name char(50),
            primary key(my_id)
          )
    
  2. DROP

           drop table my_name           
    
  3. INSERT

           insert into table  my_info(col0,col1...) values('num0','num1'...)
    
  4. SELECT
           select * from  tavle_name where ..  
    

    select 展开讲太多了,最重要的还是灵活运用子查询和各种连接

  5. UPDATE

    1
    2
    3
    4
    5
    6
    update table table_name  
    set col =
    case
    when condition0 then reslut0
    when condition1 then result1
    end;
  6. DELETE

                  delete table_name from where conditon
    
  7. SHOW
                    show databases/tables
    
  8. ALTER
           ```
                          alter table table_name
                           add col...,
                           rename to ...,  
                           change...,
                           modify...,  
                           drop ..
                           ```  
    
    其实就是对表进行修改
关键词

USE:接下来的操作都在某个db中进行
DESC:显示db的结构 /在order by中代表逆序
NULL:不是值,代表未被定义的值
DEFAULT:缺省值
LIKE:查找部分文本字符串 , % :替换符
BETWEEN:在…之间(<=&&>=)
AFTER:把某列放在另一列之后
RIGHT(),LEFT():选出指定数量的字符
select right(‘location’,2) from my_table
ORDER BY(),GROUP BY():按…排序,按…分组
MIN(),MAX(),AVG(),SUM(),COUNT():其中count()作用是返回指定列中的元素
DINSTINCT:查询列中出现过的不重复元素
LIMIT:查询结果的数量 limit m,n #从m开始一共查询n个
T.x -> T.y:在关系表T中,y列函数依赖x列
having:对已经排序的结果进行限制,常和group by等关键词组合使用

  • 数据模式
    • 一对一
    • 一对多
    • 多对多
  • ACID:原子性,一致性,隔离性,持久性
  • RDBMS的规范
    1NF:数据具有原子性,有主键
    2NF:任何非关键列完全依赖关键列(不存在部分函数依赖)
    3NF:任何非关键列不以来其他非关键列(不存在传递函数依赖)

    字符一般加引号,列名不加