zoukankan      html  css  js  c++  java
  • 01 mysql

    Sql语句:

    Structured Query Language, 结构化查询语言

    分类:

    DDL (数据定义语句)

      数据定义语言 - Data Definition Language

      用来定义数据库的对象,如数据表、视图、索引等

    DML  (数据操纵语句)

      数据处理语言 - Data Manipulation Language

      在数据库表中更新,增加和删除记录

      如 updateinsertdelete --- 增删改

    DCL (数据控制语句)

      数据控制语言Data Control Language

      指用于设置用户权限和控制事务语句

      如grantrevokeifelsewhilebegin transaction

    DQL (数据查询语句)

      数据查询语言Data Query Language

      select

    创建数据库:

    CREATE  DATABASE  db_name   

        [DEFAULT] CHARACTER SET charset_name 

      [DEFAULT] COLLATE collation_name

    CHARACTER SET:指定数据库采用的字符集

    COLLATE:指定数据库字符集的比较方式

    CREATE DATABASE day06 CHARACTER SET utf8 COLLATE utf8_bin;

    显示数据库语句:

    SHOW DATABASES

    显示数据库创建语句:

    SHOW CREATE DATABASE db_name

    数据库删除语句:

    DROP DATABASE  db_name

    修改数据库:

    ALTER  DATABASE  db_name     

    [DEFAULT] CHARACTER SET charset_name 

    [DEFAULT] COLLATE collation_name

    切换数据库 use db_name;

    查看当前使用的数据库 select database();

    创建表前,要先使用use db语句使用库。

    创建表

    CREATE TABLE table_name

    (

    field1  datatype,

    field2  datatype,

    field3  datatype

    )character set 字符集 collate 校对规则

    field:指定列名 datatype:指定列类型

    CREATE TABLE `student` (

      `sid` int(11) NOT NULL AUTO_INCREMENT,

      `sname` varchar(10) DEFAULT NULL,

      `sex` int(11) DEFAULT NULL,

      `age` int(11) DEFAULT NULL,

      PRIMARY KEY (`sid`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    MySQL常用数据类型:

    字符串型

    VARCHARCHAR

    大数据类型

    BLOB二进制、TEXT

    数值型

    TINYINT SMALLINTINTBIGINTFLOATDOUBLE

    逻辑性

    BIT

    日期型

    DATETIMEDATETIME默认是nullTIMESTAMP默认是当前时间

    定义主键约束

      primary key:不允许为空,不允许重复

    删除主键alter table tablename drop primary key ;

      主键自动增长 auto_increment

    定义唯一约束

      unique  

      例如:name varchar(20) unique

    定义非空约束

      not null  

      例如:salary double not null

    查看表:

    查看所有的表:

    Show tables;

    查看表的创建过程

    Show create table 表名;

    查看表结构

    desc student;

    修改表:

    添加列:ADD

    ALTER TABLE 表名ADD  列名 列类型 列约束;

    修改列:MODIFY

    ALTER TABLE 表名 MODIFY  列名 列类型 列约束;

    修改列名:CHANGE

    ALTER TABLE 表名 CHANGE 列名 新列名 列类型 列约束;

    删除列:DROP

    ALTER TABLE 表名 DROP 列名;

    修改表的名称rename table 表名 to 新表名;

    修改表的字符集:alter table 表名character set utf8;

    数据库CRUD语句

    INSERT

    语句向表中插入数据:

    INSERT INTO  table (column , column...) VALUES(value , value...);

    DELETE

    使用 delete语句删除表中数据:一条一条的删除表中数据

    delete from tbl_name   [WHERE 条件]

    使用truncate删除表中记录 :先删除再重新建表,适合数据多的时候

       1drop table 表名称                    删表

       2truncate table 表名称                 清空表数据 计数值重置
       3delete from 表名称 where 列名称 =       保留标识计数值

    UPDATE

    update语句修改表中数据

    UPDATE 表名 SET 列名1=expr1 , 列名2=expr2 ...   [WHERE where_definition]

    基本select语句

    SELECT [DISTINCT] [*][ 列名1,列名2] FROM 表名 [where 条件];

    DISTINCT可选,指显示结果时,是否剔除重复数据

    asas可以省略

    SELECT 列名 as 别名 from 表名;

    select语句中可使用表达式对查询的列进行运算

    例子:Select price*0.7 as 折后价 from product

    where子句中经常使用的运算符

     

     

     

    比较运算符

    >   <   <=   >=   =    <>

    大于、小于、大于(小于)等于、不等于

     between .. and...

    显示在某一区间的值

    in(set)

    显示在in列表中的值,例:in(100,200)

    like ‘pattern’

    模糊查询,% 代表零个或多个任意字符,_ 代表一个字符,例first_name like ‘_a%’;

    Is null

    判断是否为空,不为空:is not null

     

    逻辑运算符

    and

    多个条件同时成立

    or

    多个条件任一成立

    not

    不成立,例:where not(salary>100);

    order by

    使用order by 子句排序查询结果

    SELECT column1, column2. column3..

    FROM  table;

    order by column asc|desc

    Asc 升序、Desc 降序

    ORDER BY 子句应位于SELECT语句的结尾。

    聚集函数:

    Count()总数

    Sum()函数和

    AVG()函数平均值

    Max/min()函数最大/最小值

    注意:Where条件后面不能接聚合函数

    使用group by 子句对列进行分组

    使用having 子句 对分组结果进行过滤

    Havingwhere均可实现过滤,但在having可以使用聚集函数,having通常跟在group by

    外键约束:

    定义外键约束

      foreign key

      foreign key(ordersid) references orders(id) 建表时指定

    KEY `product_fk_0001` (`cid`), # 建表时,给外键起名
    CONSTRAINT `product_fk_0001` FOREIGN KEY (`cid`) REFERENCES `category` (`cid`) # 添加外键约束

    product中的这个cno 添加一个外键约束
    alter table product add foreign key(cno)  references  category(cid);

    建表原则:

     一对多:
        - 建表原则: 在多的一方增加一个外键,指向一的一方
    多对多:
        - 建表原则: 将多对多转成一对多的关系,创建一张中间表
    一对一: 不常用, 拆表操作
        - 建表原则:  将两张表合并成一张表
          - 将两张表的主键建立起关系
          - 将一对一的关系当作一对多的关系去处理

    主键约束: 默认就是不能为空, 唯一
    -  外键都是指向另外一张表的主键
    -  主键一张表只能有一个
    唯一约束:  列面的内容, 必须是唯一, 不能出现重复情况, 为空
    唯一约束不可以作为其它表的外键
    可以有多个唯一约束

    多表查询

    交叉连接查询  笛卡尔积
    select * from a,b查询结果中存在大量无意义的数据

    内连接查询
    写法一:

    select * from a inner join b on a.id=b.id;

    写法二隐式内连接

    select * from a,b where a.id = b.id
    左外连接
    left outer join    on
    右外连接

    rigth outer join    on

    分页查询

    第一个参数是索引 
    第二个参数显示的个数
    select * from product limit 0,3;
    select * from product limit 3,3;

    子查询
    -- 单行子查询(> < >= <= = <>)
    -- 多行子查询(in  not in any all)    >any  >all
    -- 多列子查询(实际使用较少)   in
    -- Select接子查询
    -- from后面接子查询
    -- where 接子查询
    -- having后面接子查询

  • 相关阅读:
    内存分布
    多态的作用
    c++虚函数实现与this指针
    Makefile 初探
    编译性语言和解释性语言
    从今天开始学好C++
    Java基础
    程序流程控制
    Java运算符
    初识Java
  • 原文地址:https://www.cnblogs.com/fly-book/p/9900995.html
Copyright © 2011-2022 走看看