zoukankan      html  css  js  c++  java
  • [sql]sql语法剖析

    目录:

    1. 创建相关的命令

    2. 表的插入

    3. 表的

    一,创建


    1. 建库

    2. 建表(table)

    mysql> create table Persons(
        id int unsigned AUTO_INCREMENT, 
        lastname varchar(20),   
        firstname varchar(10) NOT NULL,
        address char,
        age integer(3),
        family int(2),
        birthday date,
        info text,
        created timestamp default(CURRENT_TIMESTAMP),
        uptate time,
        PRIMARY KEY (id, firstname)
        );
    mysql> create table Family(  
        lastname varchar(10) NOT NULL PRIMARY KEY,
        origin char(15),
        history FLOAT(4,1)
        );

     【说明】

    1. 属性
    1) AUTO_INCREMENT: 自动加1;
    2) PRIMARY KEY(主键)
         一张表中要保证没有重复的条目,所以就需要将某个字段设置成主键, 主键不允许重复, 于是整条条目也就不会重复。主键总体来说具有如下特性:
         值唯一;
         主键列不能包含null值;
         只能有一个主键但可以建立复合主键;
         可以提高查询效率;
          非必须;
    3)Unique 与 PRIMARY KEY的区别
    参考:看样子是只有空与非空的区别
    https://stackoverflow.com/questions/9565996/difference-between-primary-key-and-unique-key
     

    2. 常用字段类型
    1)  charvarchartext
         char:  表示固定长度的字符串, 括号中指定的是字符串的长度, 可以省略,缺省为1个字符长度; 插入数据超过限值则报错。
         varchar:  表示可变长度字符串, 必须指定最大长度(即限值,最大取值255),如果内容超过限值则会报错(wxy: 有的博文说是会被转换成text类型?)
         均属于SQL Server 数据类型中的Character类型
     
         text:属于Microsoft Access 数据类型(最大长度255个字符), 和
                 属于MySQL 数据类型(存放最大长度为 65,535 个字符),  和
                 属于SQL Server 数据类型(2GB字符数据)
     
     
     
    2) int(系列) 与 integer
      int:占用4字节存储, 无符号表示-2,147,483,648 ~ 2,147,483,647; 有符号使用unsigned属性(即 int unsigned)则表示0 到 4294967295;
         可以指定长度....;
      属于MySQL,  SQL Server 数据类型中的Number类型。
      Integer:占用2字节,  -32,768 到 32,767 之间的数字, 长度设置可选,表示
         属于Microsoft Access 数据类型。
     
    3)  浮点数
         FLOAT(size,d),Mysql的Number类型,表示带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数(比如2000.1,  20.22就是不正确的长度)。
                  DOUBLE(size,d)表示带有浮动小数点的大数字;   Single/Double是MASQL家的;
    n. 其他
    1)"Describe"是特殊关键字, 不能用作表字段。

     二. 删除操作


    三. 操作表数据(insert, update)


    方式一: INSERT INTO 表名称 VALUES (值1, 值2,....)

    mysql>insert into Persons values(3,'wu','xiaohong','L',40,4,'1980-4-1','I am superman!',CURDATE(),NOW());

    解析: 必须为所有字段赋值,即使是自增的id也需要手动指定

    方拾二:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

    mysql> insert into Persons (lastName, firstName, Address) VALUES ('wu','xiaohong1', 'H');

    解析: id会自增, 其他非空字段不允许置空, 字符串长度不能超过限值; 

             注: 字段名称貌似是模糊匹配,大小写不同的话也能正确插入;

    1.关于时间的函数
    NOW(): 函数以`'YYYY-MM-DD HH:MM:SS'返回当前的日期时间,可以直接存到DATETIME字段中。
    CURDATE(): 以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。
    CURTIME(): 以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。

     

    三. 向表中插入数据(insert)

    n. 查看存储占用
    1)字符串长度len(mssql) 或 length(mysql)
    mysql> select length(firstName), firstname from Persons;
    +-------------------+-----------+
    | length(firstName) | firstname |
    +-------------------+-----------+
    |                 8 | xiaohong  |
    |                 9 | xiaohong1 |
    +-------------------+-----------+
    2)占用字节数?(mysql) 或 datalength(mssql)
    mysql> select datalength(firstName), firstname from Persons;  ---???待实验
  • 相关阅读:
    python 冒泡、二分查找
    pycharm 中按照文档引包方式,引包错误
    开发环境配置
    css,响应鼠标事件,文字变色
    Python 文档学习
    timestamp与timedelta,管理信息系统概念与基础
    中文词频统计
    文件方式实现完整的英文词频统计实例
    组合数据类型练习,英文词频统计实例上
    凯撒密码、GDP格式化输出、99乘法表
  • 原文地址:https://www.cnblogs.com/shuiguizi/p/13912679.html
Copyright © 2011-2022 走看看