zoukankan      html  css  js  c++  java
  • SQL基础

    CREATE DATABASE 

    功能:用于创建数据库。

    语法:CREATE DATABASE dbname;

    CREATE TABLE 

    功能:用于创建数据库中的表。

    语法:CREATE TABLE table_name
       (
       column_name1 data_type(size),
       column_name2 data_type(size),
       column_name3 data_type(size),
       ....
       );

    column_name 参数规定表中列的名称。

    data_type 参数规定列的数据类型(例如 varchar、integer、date 等等)。

    size 参数规定表中列的最大长度。

    约束 (CONSTRAINT)

    功能:用于规定表中的数据规则。

       如果存在违反约束的数据行为,行为会被约束终止。

       约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

    语法:CREATE TABLE table_name
       (
       column_name1 data_type(sizeconstraint_name,
       column_name2 data_type(sizeconstraint_name,
       column_name3 data_type(sizeconstraint_name,
       ....
       );

    在 SQL 中,我们有如下约束:

    • NOT NULL - 指示某列不能存储 NULL 值。
    • UNIQUE - 保证某列的每行必须有唯一的值。
    • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
    • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
    • CHECK - 保证列中的值符合指定的条件。
    • DEFAULT - 规定没有给列赋值时的默认值。

    CREATE INDEX 

    功能:用于在表中创建索引。

    语法:CREATE INDEX index_name
       ON table_name (column_name)

    DROP 

    功能:删除索引、表及数据库

    语法:

    • DROP DATABASE - DROP DATABASE dbname;    //删除数据库
    • DROP TABLE - DROP TABLE table_name;    //删除表
    • TRUNCATE TABLE - TRUNCATE TABLE table_name;   // 只删除表中数据,不删除表本身。

    ALTER 

    功能:用于在已有的表中添加、修改或删除列。

    语法:

      如需在表中添加列,请使用下面的语法:

      ALTER TABLE table_name
      ADD column_name datatype

      如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):

      ALTER TABLE table_name
      DROP COLUMN column_name

      要改变表中列的数据类型,请使用下面的语法:

      SQL Server / MS Access:

      ALTER TABLE table_name
      ALTER COLUMN column_name  datatype;

      My SQL / Oracle:

      ALTER TABLE table_name
      MODIFY COLUMN column_name datatype;

      Oracle 10G 之后版本:

      ALTER TABLE table_name
      MODIFY column_name datatype;

    视图 (VIEWS) 

    功能:视图是基于SQL语句的结果集的可视化的表。

    语法:CREATE VIEW view_name AS
       SELECT column_name(s)
       FROM table_name
       WHERE condition;

    SELECT 

    功能:用于从数据库中选取数据。结果被存储在一个结果表中,称为结果集。

    语法:SELECT column_name,column_name ......

       FROM table_name;

       与

       SELECT * FROM table_name;

    SELECT DISTINCT 

    功能:在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。DISTINCT 关键词用于返回唯一不同的值。

    语法:SELECT DISTINCT column_name,column_name ......

       FROM table_name;

    WHERE 

    功能:用于提取那些满足指定标准的记录。

    语法:SELECT column_name,column_name......
       FROM table_name
       WHERE column_name operator value;

    AND&OR

    功能:AND & OR 运算符用于基于一个以上的条件对记录进行过滤。

       如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

       如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

    ORDER BY 

    功能:ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

       ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

    语法:SELECT column_name,column_name
       FROM table_name
       ORDER BY column_name,column_name ASC|DESC;

    INSERT INTO

    功能:用于向表中插入新数据。

    语法:可以有两种编写形式:

    • 第一种形式无需指定要插入的数据的列名,只需提供被插入的数据即可。

      INSERT INTO table_name

      VALUES (value1,value2,......);

    • 第二种形式需指定要插入数据的列名和值。

      INSERT INTO table_name (column1,column2,......)

      VALUES (value1,value2,......);

    UPDATE 

    功能:用于更新表中已存在的记录。

    语法:UPDATE table_name

       SET column1=value1,column2=value2,......

       WHERE some_column=some_value;

    注意:WHERE子句规定了哪些记录需要更新,如果省略了WHERE子句,所有记录都将被更新。

    DELETE 

    功能:用于删除表中存在的记录。

    语法:DELETE FROM table_name

       WHERE some_column=some_value;

    注意:WHERE子句规定了哪些记录需要删除,如果省略了WHERE子句,所有记录都将被删除。

    LIKE 操作符 

    功能:用于在 WHERE 子句中搜索列中的指定模式。

    语法:SELECT column_name(s)
       FROM table_name
       WHERE column_name LIKE pattern;

    通配符 

    功能:用于替代字符串中任何其他字符,一般与LIKE一起使用。

    语法:%  ——  替代0个或多个字符。

        _  ——  替代一个字符。

       [charlist]  ——  字符列中的任何单一字符。

       [^charlist] 或 [!charlist]  ——  不在字符列中的任何单一字符。

    IN 操作符 

    功能:允许在WHERE字句中规定多个值。

    语法:SELECT column_name(s)
       FROM table_name
       WHERE column_name IN (value1,value2,...);

    BETWEEN 操作符 

    功能:选取介于两个值之间的数据范围内的值(值可为数值、文本、日期)。

    语法:SELECT column_name(s)
       FROM table_name
       WHERE column_name BETWEEN value1 AND value2;

    别名 

    功能:可以为表名称或列名称指定别名(为了使可读性更强)。

    列别名语法:SELECT column_name AS alias_name
          FROM table_name;

    表别名语法:SELECT column_name(s)
          FROM table_name AS alias_name;

    JOIN(连接) 

    功能:基于表之间的共同字段,用于把来自两个或多个表的行结合起来。

    语法:SELECT column_name(s)
       FROM table_name1
       INNER JOIN (替换)  table_name2
       ON table_name1.column_name=table_name2.column_name;

    • INNER JOIN ( =JOIN ):如果表中有至少一个匹配,则返回行
    • LEFT JOIN ( =LEFT OUTER JOIN ):即使右表中没有匹配,也从左表返回所有的行
    • RIGHT JOIN ( =RIGHT OUTER JOIN ):即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN ( =FULL OUTER JOIN ):只要其中一个表中存在匹配,则返回行 

    UNION

    功能: UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

        请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

    语法:

    UNION()

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2;

    UNION ALL

    SELECT column_name(s) FROM table1
    UNION ALL
    SELECT column_name(s) FROM table2;

    注意:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

     

    Mei
  • 相关阅读:
    Atitit sumdoc t5 final file list \sumdoc t5 final\sumdoc t511 \sumdoc t5 final\sumdoc t511.zip \sum
    上课流程法如何上好第一节课(1) 目录 1. 目录 1 1.1. 销售自己 1 1.2. 销售课程 1 1.3. 学习方法 1 1.4. 制定规章 2 2. 销售自己自我介绍 2 2.1.
    Atitit 重复文件清理工具 按照文件名 目录 1. 原理, 1 1.1. If base filex exist dele other files 1 1.2. Get getStartIdex
    Atitit sumdoc index 2019 v6 t56 .docx Atitit sumdoc index s99 目录 1. Zip ver 1 1.1. C:\Users\Adminis
    Atitit lucence es solr的各种query 与sql运算符的对比 目录 1.1. 等于运算 TermQuery 1 1.2. 范围运算 1 1.3. 大小运算 1 1.4. Wi
    Atitit 程序设计概论 艾提拉著作 目录 1. 界面ui设计 1 2. 编程语言部分 1 3. 面向对象的程序设计 1 4. 算法章节 数据结构 1 5. 第21章 标准库 2 5.1. 文件i
    Atitit 命令行执行sql 跨语言 目录 1.1. 无需输入密码,那就不要p参数即可 1 1.2. 4.使用mysql命令执行 1 1.3. 5.mysql命令执行sql,并将查询结果保存到
    Atitit java播放 wav MIXER 混响器编程 目录 1.1. MIXER 混响器编程 1 1.2. 得到系统中一共有多少个混音器设备: 1 1.3. 接口摘要 1 1.4. 调节音量
    Atitit object 和class的理解 目录 1.1. 发现很多Object的方法都是相同的,他们被重复地放在一个个对象当中,太浪费了。 1 1.2. 那我们怎么把这些Object给创建起来
    Atitit 数据库的历史与未来 目录 1.1. 两个对于数据库强需求的行业。电信 金融 1 1.2. 艾提拉分析 对数据库强需求行业金融 1 2. 数据库历史 2 2.1. ,上个世纪50,6
  • 原文地址:https://www.cnblogs.com/xiaomei1990/p/9297997.html
Copyright © 2011-2022 走看看