zoukankan      html  css  js  c++  java
  • sql-DDL, DML 常用语句

    mysql的安装可见: http://www.cnblogs.com/wenbronk/p/6840484.html

    很久不用mysql, 今天建表都不会了, , ,

    慢慢补充

     sql语言分为3种: DDL, DML, DCL

    DML(data manipulation language)是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。

    DDL(data definition language)是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
    DCL(DataControlLanguage)是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。


    DDL

    ddl的操作主要是针对数据库和数据表的

    CREATE:用于创建数据库对象。
    DECLARE:除了是创建只在过程中使用的临时表外,DECLARE语句和CREATE语句非常相似。唯一可以被声明的对象是表。并且必须放入用户临时表空间。
    DROP:可以删除任何用CREATE(数据库对象)和DECLARE(表)创建的对象。
    ALTER:允许修改某些数据库对象的信息。不能修改索引。 

    1, 对数据库的操作

    1, 创建数据库

    create database test;
    create database test character set utf-8;   # 设置编码

    2, 查看数据库

    show databases;

    3, 使用数据库

    use test;

    4, 查看当前使用的数据库

    select database();

    5, 查看数据库结构

    show create database test;

    6, 删除数据库

    drop database test;

    2, 对数据表的操作

    1, 建表, 格式: 列名 数据类型(长度) (约束)

    create table sys_user(
        id int(4) not null primary key auto_increment,
        name char(20) not null,
        sex int(4) not null default '0',
        degree double(16,2),
      unique name_index(sys_user)  # 创建name的唯一索引
    );

     建表一般预留3列, 为varchar类型, 具体看需求

    2, 查询表

    show sys_user;     # 显示当前库下的表
    desc sys_user;        # 显示表结构
    show create table sys_user;     # 

     3, 删除表

    drop table sys_user;

    4, 数据备份 (小数据量)

    create table new_user select * from sys_user;

    5, 修改表结构

    # 修改表名
    rename table sys_user to new_user;
    
    # 添加列
    alter table sys_user add addre varchar(32) not null;
    
    # 修改列名
    alter table sys_user change sex new_sex;
    
    # 修改列类型
    alter table sys_user modify addre varchar(64);
    
    # 删除列
    alter table sys_user drop sex;

    3, 索引操作

    详细见: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html

    # 创建索引
    create index name_index on sys_user(name);

    # 创建唯一索引
    create unique index name_index on sys_user(name);
    alter table sys_user add unique name_index(sys_user);

    # 删除索引
    drop index name_index on sys_user;

    #查看索引
    show index from sys_user;

    DML

    dml主要是针对数据的操作, 主要分为4大类, CRUD操作

    1, 增

    insert into 表名 (列1, 列2..) values ( 值1, 值2)    # 一一对应即可
    insert into 表名 values (值1, 值2, ..)                 # 和表的列一一对应

    2, 删

    delete from 表名;        # 删除表中所有数据, auto_increment不会重置
    
    # 加上where子句, 条件删除
    delete from 表名 where money > 100 and money < 500;

    3, 改

    update sys_user set name='vini', sex='woman' where id=1;    # 不加where子句, 会全部修改

    4, 查

    select u.username, u.password from user u;

    5, 聚合查询 ( 纵向查询, 不统计null值)

    # count
    select count(name) as '总数' from sys_user
    select count(DISTINCT(name)) as '总数' from sys_user;        # 使用distinct函数去重
    
    # sum
    select sun(IS NULL(num))  from sys_user;        # 使用 is null 去除为null的
    
    #max, min, avg
    select max(money) from sys_user;

    6, where 子句

    比较运算符: >, < >=, <=, !=(<>)
    逻辑运算符: and, or, not
    在范围内: between..and..
    指定值: in(值1, 值2, 值3)
    模糊匹配: like
    null: is not null 不为空
    
    select * from sys_user where money > 100 and addr like '%北京%' or money between 80 and 90;

    7, 分组

    group by

    having: 只在在group by后面, 分组后对结果再次过滤

    8, 排序

    order by

    更改编码集

  • 相关阅读:
    复制对象
    element.classList属性及方法应用
    Object.defineProperty
    965. Univalued Binary Tree
    700. Search in a Binary Search Tree
    561, Array Partition Ⅰ
    933. Number of Recent Calls
    999.Available Capture for rook
    961. N-Repeated Element in Size 2N Array
    709. To Lower Case
  • 原文地址:https://www.cnblogs.com/twodog/p/12139636.html
Copyright © 2011-2022 走看看