`
足至迹留
  • 浏览: 494823 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

sql基础回顾-1 (top, join, select into, constraints)

 
阅读更多
轻轻拍打的回忆。

1.SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集, Result-Set)。
由 SQL 查询程序获得的结果被存放在一个结果集中。大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。

2. 选择top记录
Sqlserver
SELECT TOP number|percent column_name(s) FROM table_name
如:SELECT TOP 10 name FROM student;
SELECT TOP 10 percent * FROM student; // 前10%的记录

Mysql:
SELECT column_name(s) FROM table_name LIMIT number
如:SELECT * FROM Persons LIMIT 5;

Oracle:
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number
如:SELECT * FROM Persons WHERE ROWNUM <= 5

3.连接有内连接(inner join),外连接(left join, right join, full join)和交叉连接(cross join)
(1)inner join可以简写为join,只列出符合条件的结果
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
等价于
SELECT column_name(s)
FROM table_name1
JOIN table_name2
Using(column_name)

(2)外连接有三种,full join相当于是left join和right join的合集(union)
在外连接中把过滤条件放到on子句和where子句后的结果是不同的,内连接则一样。
http://www.jb51.net/article/39435.htm

(3)交叉连接相当于是表的笛卡尔积
如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;如果有WHERE子句的话,往往会先生成两个表行数乘积的行的数据表然后才根据WHERE条件从中选择。 因此,如果两个需要求交际的表太大,将会非常非常慢,不建议使用。
SELECT * FROM table1 CROSS JOIN table2
等价于
SELECT * FROM table1,table2
注意:cross join后加条件只能用where,不能用on

在连接中的on和where还可以参考:http://www.cnblogs.com/hgwy/articles/1691689.html

join表顺序http://tech.it168.com/a2012/0620/1362/000001362718.shtml

4. 通配符


5. SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename

如:
下面的例子会制作 "Persons" 表的备份复件:
SELECT *
INTO Persons_backup
FROM Persons

IN 子句可用于向另一个数据库中拷贝表:
SELECT *
INTO Persons IN 'Backup.mdb'
FROM Persons

类似的拷贝还可以使用:create table back_table as select * from source_table;

6. SQL 约束
约束用于限制加入表的数据的类型。
可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
我们将主要探讨以下几种约束:
• NOT NULL
• UNIQUE
• PRIMARY KEY
• FOREIGN KEY
• CHECK
• DEFAULT

7. SQL NULL 值
如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。
注释:无法比较 NULL 和 0;它们是不等价的。
无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
我们必须使用 IS NULL 和 IS NOT NULL 操作符。
  • 大小: 10.2 KB
分享到:
评论

相关推荐

    SQL 语法 SQL 总结 SQL教程

    SQL Select Into SQL Create DB SQL Create Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Create Index SQL Drop SQL Alter SQL ...

    sql用法大全,包含sql多种基本用法

    - **语法**: `SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.column_name = table2.column_name;` - 示例: `SELECT * FROM a RIGHT OUTER JOIN b ON a.a = b.c;` 3. **全外连接** - **语法**: `...

    T-SQL编程入门(SQL Server)

    ### T-SQL编程入门(SQL Server) #### 一、T-SQL的组成 T-SQL (Transact-SQL) 是 Microsoft SQL Server 使用的一种扩展版本的 SQL 语言,它提供了额外的功能来增强 SQL 的功能,使开发者能够更高效地管理和操作...

    Sql 语句详解

    全网最全的SQL 讲解,带实例描述 ...21. SQL SELECT INTO 语句 28 22. SQL CREATE DATABASE 语句 29 23. SQL CREATE TABLE 语句 29 24. SQL 约束 (Constraints) 30 25. SQL NOT NULL 约束 31 ……

    SQL操作符和函数

    #### 一、SQL语法基础 **SQL**(Structured Query Language)是一种专门用于管理和处理关系型数据库的语言。它不仅用于检索数据,还支持数据更新、插入和删除等多种操作。 ##### 1. 数据库与表 - **数据库**:一个或...

    w3school SQL教程1.0

    - **SQL Select Into**: - **用途**:从一个表中选取数据并将其插入到另一个新表中。 - **示例**:`SELECT * INTO TargetTable FROM SourceTable;` - **SQL Create DB**: - **用途**:创建新的数据库。 - **...

    精髓Oralcle讲课笔记

    --(四舍五入后保留的小数位数 0 个位 -1 十位) 36、select to_char(sal, '$99,999.9999')from emp; --(加$符号加入千位分隔符,保留四位小数,没有的补零) 37、select to_char(sal, 'L99,999.9999')from emp; -...

    数据库教程

    - **SQL SELECT INTO语句**: - 用于从一个表选择数据到另一个新表中。 - **SQL CREATE DATABASE语句**: - **基本格式**:`CREATE DATABASE database_name;` - 用于创建新的数据库。 - **SQL CREATE TABLE语句...

    sql基础教程语法大全

    INSERT INTO table_name (column1, column2) VALUES (value1, value2); 五、更新数据(UPDATE语句) UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; 六、删除数据(DELETE语句) ...

    SQL 语法参考手册

    SELECT * FROM table1 JOIN table2 ON table1.column = table2.column; ``` 2. 子查询:在SQL语句中嵌套查询。 ```sql SELECT column FROM table WHERE column IN (SELECT column FROM another_table WHERE ...

    sql基本用法sql基本用法sql基本用法

    SELECT TOP 0 * INTO new_table FROM existing_table; ``` 或者 ```sql SELECT * INTO new_table FROM existing_table WHERE 1 &lt;&gt; 1; ``` 这两种方法都可以用来创建一个与现有表结构相同的空表。 #### 复制表内容 `...

    sql语句学习入门

    SQL语句的基本语法包括以下关键字:SELECT, INSERT INTO, UPDATE, DELETE, FROM, WHERE, AND, OR, ORDER BY, JOIN, UNION等。这些关键字用于执行不同类型的数据操作。 - SELECT用于从数据库中检索数据。 - INSERT ...

    SQL精妙语句收集!

    根据提供的文件信息,我们可以整理出一...这些知识点涵盖了数据库管理的基本操作、表的操作、数据查询和处理等方面,是学习SQL的基础和核心内容。希望这些信息能够帮助你在实际工作中更加熟练地使用SQL进行数据管理。

    经典版SQL语句

    - **语法**:`SELECT * FROM table1 RIGHT OUTER JOIN table2 ON table1.column = table2.column;` - **示例**:右外连接两个表。 ```sql SELECT a.a, a.b, a.c, b.c, b.d, b.f FROM table1 a RIGHT OUTER JOIN ...

    SQL语句教程 写法大全

    SQL 高级知识,如 Top 语句、Like 语句、通配符、In 语句、Between 语句、Aliases 语句、Join 语句、Inner Join 语句、Left Join 语句、Right Join 语句、Full Join 语句、Union 语句、Select Into 语句、Create DB ...

    SQL develop

    CREATE VIEW top_sales AS SELECT store_name, SUM(Sales) AS total_sales FROM Store_Information GROUP BY store_name; ``` **CREATE INDEX** - **用途**: 创建索引以提高查询性能。 - **示例**: ```sql ...

    sqlsqlsqlsqlsqlsql

    INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...); ``` #### 更新数据 修改表中已有的数据可以通过以下命令实现: ```sql UPDATE table_name SET column1 = new_value1, column2 = ...

Global site tag (gtag.js) - Google Analytics