sql 自学二
来源:互联网 发布:网络意识形态 论文 编辑:程序博客网 时间:2024/04/28 04:46
一.操作数据
1. 插入语句:INSERT 语句允许你向数据库中输入数据,它有两种写法:
INSERT VALUES 和INSERT SELECT
a. insert values语句:insert into table_name (col1, col2...) values (value1, value2...)
b. insert select 语句:它允许程序员拷贝一个或一组表的信息到另外一个表中。
Insert into table_name (col1, col2...) select col1, col2...from tablename where……
INSERT SELECT 语句要求你遵循如下规则
l SELECT 语句不能从被插入数据的表中选择行
l INSERT INTO 中的列数必须与SELECT 语句返回的列数相等
l INSERT INTO 中的数据类型要与SELECT 语句返回的数据类型相同
2. update 语句
Update table_name setcolumnname1 = value1 [, columname2 = value2]...
Where search_condition
SQL SERVER允许使用FROM 子句实现对给定表的记录用其它表中的数据来进行更新操作.
Update table_name SET columnname1 = value1 [, columname2 = value2]...
FROM table_list WHERE search_condition
3. delete 语句
语法格式(delete 语句只会删除记录不会删除表如果要删除表需使用DROP TABLE
命令):
Delete from tablename where condition
二.创建和操作表
数据定义语句:create ,alter ,drop
数据操作语句:select ,update,insert,delete
1. create database语句:create database database_name
create table语句:create table table_name (field1 datatype [ NOT NULL ]
field2 datatype [ NOT NULL ]
2. 用一个已经存在的表来创建表
CREATE TABLE NEW_TABLE(FIELD1, FIELD2, FIELD3)
AS (SELECT FIELD1, FIELD2, FIELD3
FROM OLD_TABLE <WHERE...>
3. alter table语句
加入一列到已经存在的表中, 修改已经存在的表中的某一列
alter table table_name <ADD column_name data_type; |
modify column_name data_type;>
4. drop table 语句:drop table table_name
drop database语句:drop database database_name
三.创建视图和索引
1. 视图被称为虚表,用create view 语句来建立
CREATE VIEW <view_name> [(column1, column2...)] AS
SELECT <table_name column_names>
FROM <table_name>
2. 索引是与磁盘上数据的存储方式不同的另外一种组织数据的方法,索引的特例是表中记录依据其在磁盘上的存储位置显示,索引可以在表内创建一个列或列的组合。当应用索引以后,数据会按照你使用CREATE INDEX 语句所定义的排序方式返回给用户。
3. 使用视图
Create view和语法:
Create view <view_name> [(column1, column2...)] AS
Select <table_name column_names>
FROM <table_name>
4. 在select语句使用约束:在视图的SELECT 语句中使用约束是必然的在使用SELECT 语句中可以应用下边这两个规则:
l 不能使用 UNION 操作
l 你不能使用 ORDER BY
5. 使用索引
索引的语法:
Create index index_name on table_namename(column_name1, [column_name2], ...)
四.事物处理控制
开始事物begin ,结束事物commit,取消事务rollback
五.数据库安全
1. 创建用户
CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[DEFAULT TABLESPACE tablespace]
[TEMPORARY TABLESPACE tablespace]
[QUOTA {integer [K|M] | UNLIMITED} ON tablespace]
[PROFILE profile]
2. 创建角色
GRANT role TO user [WITH ADMIN OPTION]
如果想删除角色可以使用REVOKE 命令:revoke role from user
六.高级sql
1. 创建临时表
create table #table_name (field1 datatype,……fieldn datatype)
2.游标:数据库指针类似于字处理程序中的指针。当你按下方向键时游标依次从各行文本中滚动,按一下向上键游标向上跳一行而按PageUp 和PageDown, 则会向一次翻阅几行
游标的另一个常见的用法是保存查询结果以备以后使用。
创建、使用和关闭数据库游标的例子:
Create the cursor
Open the cursor for use within the procedure or application.
Fetch a record's data one row at a time until you have reached the end of the cursor's records.
Close the cursor when you are finished with it.
Deallocate the cursor to completely discard it.
3. 创建和使用存储过程
a.使用Transcat-SQL 来创建存贮过程的语法如下:
create procedure procedure_name
[[(]@parameter_name
datatype [(length) | (precision [, scale])
[= default][output]
[, @parameter_name
datatype [(length) | (precision [, scale])
[= default][output]]...[)]]
[with recompile]
as SQL_statements
b.运行存贮过程的EXECUTE 命令的语法如下:
execute [@return_status = ]
procedure_name
[[@parameter_name =] value |
[@parameter_name =] @variable [output]...]]
[with recompile]
C.在存储过程中使用参数输入参数
必须以@提示符开始而且这些参数必须是Transcat-SQL 的合法数据类型
输出参数也必须以@提示符开始,此外OUTPUT 关键字必须紧跟着输出参数的名字.(当
你在运行存贮过程时你必须给出OUTPUT 关键字)
d. 删除一个存储过程
drop procedure procedure_name
- sql 自学二
- Fckeditor自学笔记二
- Erlang自学笔记(二)
- Java 自学日志【二】
- oracle自学(二)
- CSS自学笔记(二)
- HTML自学笔记(二)
- php自学笔记(二)
- JS自学笔记(二)
- mysql自学二
- 自学Java之二
- java自学日记二
- 自学Swift(二)
- 从零开始自学Swift(二)
- vbs自学(二)
- swif自学笔记(二)
- Runtime自学二
- ActiveMq 自学(二)
- MySQL查看和导入导出命令
- A*寻路算法初探
- 值得看的几点关于cakephp的经验
- Visual Studio 2010 Ultimate 中对于VC++6.0的经典回归
- poj1905解题报告
- sql 自学二
- Windows自动更新API (五)
- HTTP中Get与Post的区别
- SQL2005/2008 tempdb数据库路径的转移
- sss
- 关于计算机中Endian(Big-Endian和Little_Endian)存储机制的由来、特点和区别
- 写个类似的shell(不支持重定向、管道)
- 高性能网站建设进阶指南:Web开发者性能优化最佳实践
- 列出字符串中个数最多所有的字符