MS-SQL数据库开发—经典实例

1.按姓氏笔画排序:
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

2.数据库加密:
select encrypt('原始密码')
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
 
encrypt('原始密码')
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同

3.取回表中字段:
declare @list varchar(1000),@sql nvarchar(1000) 
select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
set @sql='select '+right(@list,len(@list)-1)+' from 表A' 
exec (@sql)

4.查看硬盘分区:
EXEC master..xp_fixeddrives

5.比较A,B表是否相等:
if (select checksum_agg(binary_checksum(*)) from A)
    =
   (select checksum_agg(binary_checksum(*)) from B)
print '相等'
else
print '不相等'

6.杀掉所有的事件探察器进程:
DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
EXEC sp_msforeach_worker '?'

7.记录搜索:
开头到N条记录

Select Top N * From 表
-------------------------------
N到M条记录(要有主索引ID)
Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID  Desc
----------------------------------
N到结尾记录
Select Top N * From 表 Order by ID Desc

8.如何修改数据库的名称:
sp_renamedb 'old_name', 'new_name' 

9:获取当前数据库中的所有用户表
select Name from sysobjects where xtype='u' and status>=0

10:获取某一个表的所有字段
select name from syscolumns where id=object_id('表名')

11:查看与某一个表相关的视图、存储过程、函数
select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'

12:查看当前数据库中所有存储过程
select name as 存储过程名称 from sysobjects where xtype='P'

13:查询用户创建的所有数据库
select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
或者
select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01

14:查询某一个表的字段和数据类型
select column_name,data_type from information_schema.columns
where table_name = '表名'

[n].[标题]:
Select * From TableName Order By CustomerName 

[n].[标题]:
Select * From TableName Order By CustomerName 


用MySQL创建数据库和数据库表

1、使用SHOW语句找出在服务器上当前存在什么数据库: 

mysql> SHOW DATABASES; 
+----------+ 
| Database | 
+----------+ 
| mysql | 
| test | 
+----------+ 
3 rows in set (0.00 sec)

2、创建一个数据库abccs  
mysql> CREATE DATABASE abccs; 
注意不同操作系统对大小写的敏感。 
3、选择你所创建的数据库  
mysql> USE abccs 
Database changed 
此时你已经进入你刚才所建立的数据库abccs. 
4、 创建一个数据库表  
首先看现在你的数据库中存在什么表: 
mysql> SHOW TABLES; 
Empty set (0.00 sec) 
说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:   我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。 
mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), 
-> birth DATE, birthaddr VARCHAR(20)); 
Query OK, 0 rows affected (0.00 sec)

由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。);性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);birth列则使用DATE数据类型。 
创建了一个表后,我们可以看看刚才做的结果,用SHOW TABLES显示数据库中有哪些表: 
mysql> SHOW TABLES; 
+---------------------+ 
| Tables in menagerie | 
+---------------------+ 
| mytables | 
+---------------------+

5、显示表的结构:  
mysql> DESCRIBE mytable; 
+-------------+-------------+------+-----+---------+-------+ 
| Field | Type | Null | Key | Default | Extra | 
+-------------+-------------+------+-----+---------+-------+ 
| name | varchar(20) | YES | | NULL | | 
| sex | char(1) | YES | | NULL | | 
| birth | date | YES | | NULL | | 
| deathaddr | varchar(20) | YES | | NULL | | 
+-------------+-------------+------+-----+---------+-------+ 
4 rows in set (0.00 sec)

6、 往表中加入记录  
我们先用SELECT命令来查看表中的数据: 
mysql> select * from mytable; 
Empty set (0.00 sec)
这说明刚才创建的表还没有记录。 加入一条新记录: 
mysql> insert into mytable 
-> values (′abccs′,′f′,′1977-07-07′,′china′); 
Query OK, 1 row affected (0.05 sec)

再用上面的SELECT命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。 
7、用文本方式将数据装入一个数据库表  
如果一条一条地输入,很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATE TABLE语句中列出的列次序给出,例如: 
abccs f 1977-07-07 china   
mary f 1978-12-12 usa 
tom m 1970-09-02 usa

使用下面命令将文本文件“mytable.txt”装载到mytable表中:mysql> LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet; 
再使用如下命令看看是否已将数据输入到数据库表中:mysql> select * from mytable;


3. 创建首个 SQLite 数据库


现在你已经安装了 SQLite 数据库,接下来我们创建首个数据库。在命令行窗口中输入如下命令来创建一个名为 test.db 的数据库。


sqlite3 test.db 
创建表:


sqlite> create table mytable(id integer primary key, value text);  
2 columns were created.  
该表包含一个名为 id 的主键字段和一个名为 value 的文本字段。


注意: 最少必须为新建的数据库创建一个表或者视图,这么才能将数据库保存到磁盘中,否则数据库不会被创建。


接下来往表里中写入一些数据:


sqlite> insert into mytable(id, value) values(1, 'Micheal');  
sqlite> insert into mytable(id, value) values(2, 'Jenny');  
sqlite> insert into mytable(value) values('Francis');  
sqlite> insert into mytable(value) values('Kerk'); 
查询数据:


sqlite> select * from test;  
1|Micheal  
2|Jenny  
3|Francis  
4|Kerk 
设置格式化查询结果:


sqlite> .mode column;  
sqlite> .header on;  
sqlite> select * from test;  
id          value  
----------- -------------  
1           Micheal  
2           Jenny  
3           Francis  
4           Kerk 
.mode column 将设置为列显示模式,.header 将显示列名。


修改表结构,增加列:


sqlite> alter table mytable add column email text not null '' collate nocase;; 
创建视图:


sqlite> create view nameview as select * from mytable; 
创建索引:


sqlite> create index test_idx on mytable(value); 
4. 一些有用的 SQLite 命令


显示表结构:


sqlite> .schema [table] 
获取所有表和视图:


sqlite > .tables 
获取指定表的索引列表:


sqlite > .indices [table ] 
导出数据库到 SQL 文件:


sqlite > .output [filename ]  
sqlite > .dump  
sqlite > .output stdout 
从 SQL 文件导入数据库:


sqlite > .read [filename ] 
格式化输出数据到 CSV 格式:


sqlite >.output [filename.csv ]  
sqlite >.separator ,  
sqlite > select * from test;  
sqlite >.output stdout 
从 CSV 文件导入数据到表中:


sqlite >create table newtable ( id integer primary key, value text );  
sqlite >.import [filename.csv ] newtable 
备份数据库:


/* usage: sqlite3 [database] .dump > [filename] */  
sqlite3 mytable.db .dump > backup.sql 
恢复数据库:


/* usage: sqlite3 [database ] < [filename ] */  
sqlite3 mytable.db < backup.sql 

你可能感兴趣的:(MS-SQL数据库开发—经典实例)