ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

[sql]sql语法剖析

2021-12-02 14:33:28  阅读:121  来源: 互联网

标签:语法 varchar int sql 数据类型 剖析 mysql 长度 主键


目录:

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;  ---???待实验

 

标签:语法,varchar,int,sql,数据类型,剖析,mysql,长度,主键
来源: https://www.cnblogs.com/shuiguizi/p/13912679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有