一、SQL语句种类:

  1. DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表;包含以下几种指令:

    a. CREATE:CREATE: 创建数据库和表等对象
    b. DROP: 删除数据库和表等对象
    c. ALTER: 修改数据库和表等对象的结构

  2. DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录;包含以下几种指令:

    a. SELECT:查询表中的数据
    b. INSERT:向表中插入新数据
    c. UPDATE:更新表中的数据
    d. DELETE:删除表中的数据

  3. DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更,和设定RDBMS 的用户的权限; 包含以下几种指令:

    a. COMMIT: 确认对数据库中的数据进行的变更
    b. ROLLBACK: 取消对数据库中的数据进行的变更
    c. GRANT: 赋予用户操作权限
    d. REVOKE: 取消用户的操作权限

二、 书写法则

  1. SQL 语句要以分号(;)结尾;

  2. SQL 语句不区分大小写;

  3. 常数的书写方式是固定的,使用单引号(')将字符串括起来,用来标识这是一个字符串,例如'abc','2010-01-26';

  4. 单词之间需要用半角空格或者换行来分隔;

三、命名规则:

  1. 数据库名称、表名和列名可以使用以下三种字符:中文字符、英文字母、 数字、下划线(_);

  2. 名称必须以中文字符、英文字母作为开头

  3. 同一个数据库,表名不能重复;同一张表,字段不能重复;

  4. 数据,也就是表的列必须指定数据类型;

四、存储数据类型

  1. 整形:

    a. INT或INTEGER: (数字型)4 字节;

    b. TINYINT:1字节;

    c. SMALLINT: 2字节;

    d. MEDIUMINT:3字节;

    e. BIGINT:8字节;

  2. 小数:

    a. FLOAT: 单精, 4字节;

    b. DOUBLE: 双精度, 8字节;

    c. DECIMAL: DECIMAL(M,D) ,如果M>D,为M+2否则为D+2;

  3. 字符型

    a. CHAR: 存储字符串, 在括号中指定字符串的长度,例如:CHAR(256);

    注:i. 字符串以定长字符串的形式存储;如果字符串的长度<长度,字符串仍然以定长存储,用半角空格补足;

      ii. 字符串超出最大长度的部分无法输入到该列中;

      iii. 区分大小写

    b. VARCHAR:存储字符串,在括号中指定字符串的长度,例如:VARCHAR(256);

    注:i. 以可变长字符串的形式来保存字符串;

      ii. 字符数未达到最大长度,保存字符串本身;如向VARCHAR(8) 类型的列中输入字符串'abc'的时候,保存的就是字符串'abc';

      ii. 区分大小写;

    c. TINYBLOB: 不超过 255个字符的二进制字符串;

    c1. MEDIUMBLOB: 二进制形式的中等长度文本数据

    c2. BLOB: 二进制形式的长文本数据

    c3. LONGBLOB: 二进制形式的极大文本数据

    d1. TINYTEXT: 短文本字符串

    d2. MEDIUMTEXT: 中等长度文本数据

    d3. TEXT: 长文本数据

    d4. LONGTEXT: 极大文本数据

  注:UTF-8:一个汉字=3个字节;GBK:一个汉字=2个字节

  4. 日期类型

    a. DATE: 3个字节,格式:YYYY-MM-DD;

    b. TIME: 3个字节,格式:HH:MM:SS;

    c. YEAR:  1个字节,格式:YYYY

    e. DATETIME: 8个字节,格式:YYYY-MM-DD HH:MM:SS

    f. TIMESTAMP: 4个字节,格式:YYYYMMDD HHMMSS

  总结字符串的使用: 

    i. 经常变化的字段用 varchar;

    ii. 知道固定长度的用 char

    iii. 尽量用 varchar

    iv. 超过 255 字符的只能用 varchar 或者 text

    iiv. 能用 varchar 的地方不用 text

五、约束

  1. PRIMARY KEY:主键,唯一标识数据库表中的每条记录;

    a.主键必须包含唯一的值;

    b. 不能包含 NULL 值;

    c. 每个表都应该有一个主键,并且每个表只能有一个主键。

  2. FOREIGN KEY:外键, 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY;

  3. UNIQUE: 唯一标识数据库表中的每条记录;

  4. NOT NULL:强制列不接受 NULL 值。尽量使用Not Null; 如:product_id CHAR(4) NOT NULL;

  5. CHECK: 限制列中的值的范围;

  6. DEFAULT: 向列中插入默认值;

  

  

  

  

数据库学习之二--SQL语句以及数据类型的更多相关文章

  1. iOS数据库学习(2)-基础SQL语句

    /* 1. 创建一个数据表 */ CREATE TABLE IF NOT EXISTS t_dog (name text, age integer); CREATE TABLE IF NOT EXIS ...

  2. 【初学Java学习笔记】SQL语句调优

    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认 ...

  3. Python3:sqlalchemy对sybase数据库操作,非sql语句

    Python3:sqlalchemy对sybase数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- c ...

  4. Python3:sqlalchemy对mysql数据库操作,非sql语句

    Python3:sqlalchemy对mysql数据库操作,非sql语句 # python3 # author lizm # datetime 2018-02-01 10:00:00 # -*- co ...

  5. SQL Server数据库性能优化之SQL语句篇【转】

    SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...

  6. 创建数据库和表的SQL语句【转】

    创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...

  7. 如何找出MySQL数据库中的低效SQL语句

    面对业务的迅猛发展,DBA的一项重要工作就是及时发现数据库中的低效SQL语句,有的可以立刻着手解决(比如缺少合适的索引),有的需要尽快反馈给开发人员进行修改. MySQL数据库有几个配置选项可以帮助我 ...

  8. Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)

    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项) A.cat B.concat C.join D.+ 解答:B

  9. DBA 需要知道N种对数据库性能的监控SQL语句

    --DBA 需要知道N种对数据库性能的监控SQL语句 -- IO问题的SQL内部分析 下面的DMV查询可以来检查当前所有的等待累积值. Select wait_type, waiting_tasks_ ...

随机推荐

  1. 跟我一起学编程—《Scratch编程》第22课:颠弹力球

    1. 能够熟练绘制角色和背景造型 2. 能够熟练控制角色角度.速度等 3. 能够熟练使用变量 4. 能够熟练使用循环.选择等指令控制程序 任务描述: 1. 绘制弹力小球.托板角色,背景造型. 2. 游 ...

  2. springboot项目在IDEA根据不同的开发人员读取不同的配置文件

    IDEA启动项目打开项目的配置文件,修改Program argument为--spring.profiles.active=developerName启动项目,即可 命令行方式启动项目 java -j ...

  3. css之实现下拉框自上而下展开动画效果&&自下而上收起动画效果

    HTML代码: <div className={CX('font-size-selector-sub-list', { show: shouldSubListShow === true, hid ...

  4. 【Transact-SQL】计算整个表中所有值的出现的次数

    原文:[Transact-SQL]计算整个表中所有值的出现的次数 一个表有3列,5行,那么一共有15个值,现在要计算整个表中所有值在表中出现的次数,不过这里表的列数是不确定的,上面的例子是3列,实际上 ...

  5. linux 用户切换组

    问题: 因为默认的的网站路径 /var/www/html 是root 用户 root组的, 想要修改什么的需要用sudo 很麻烦. 解决: 将当前用户 hehecat加入至root组,使之有权限对目录 ...

  6. numix Docky

    今天我们介绍这款主题适用于 Docky 启动器的 numix 主题,关于 Docky 大家已经应该很熟悉了,一款类似 Mac 底部软件停放的快捷启动码头.如图: 这款主题是 Docky 的主题,如果你 ...

  7. Asp.Net Core 轻松学系列-1阅读指引目录

    https://www.cnblogs.com/viter/p/10474091.html 目录 前言 1. 从安装到配置 2. 业务实现 3. 日志 4. 测试 5. 缓存使用 6.网络和通讯 7. ...

  8. 线程池工具ThreadPoolExecutor

    JDK1.5中引入了强大的concurrent包,其中最常用的莫过了线程池的实现ThreadPoolExecutor,它给我们带来了极大的方便,但同时,对于该线程池不恰当的设置也可能使其效率并不能达到 ...

  9. 新学WEB前端

    介绍一点关于我对学习前端的一些学习经验和遇到的问题! 1.坚持 现在编码技术更新的速度日新月异,并且对于纯英文字母的代码来说,我们不是长时间接触并且记忆的话,对于一些难一些的标签和属性是非常容易忘记的 ...

  10. undefined reference to `udev_device_get_action'

    /usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libusb-1.0.a(libusb_1_0_la-linux_udev.o): In ...