SQL server相关代码

/*数据库建立*/
create database testbd1
on primary(
name = 'testbd1_dat',
filename='D:\data\testbd1.mdf',
size=10MB,
maxsize=50MB,
filegrowth=5MB
)

log on (
name='testbd1_log',
filename='D:\data\testbd1log.ldf',
size=5MB,
maxsize=25MB,
filegrowth=5MB
);

/*更改数据库的名称*/
alter database tesebd1
modify name=testbd2;

/*更改数据库的文件的属性*/
alter database 数据库名
modify file(
name=我是傻差 ,
size=10MB,
maxsize=50MB,
filegrowth=5MB
)

/*数据库查看是否修改成功*/
exec sp_helpdb testdb

/*删除数据库*/
drop database[数据库名];

 

 

 

 


/*表的创建*/
create table kecheng
(id int primary key not null,
name varchar(10) not null,
age int not null
);
/*表的修改*/
/*修改该列的数据类型*/
alter table kecheng
alter column name  varchar(100);

alter table kecheng
alter column age float;

alter table kecheng
alter column age not null;
/*修改主键*/
alter table kecheng
add constraint KID primary key (id);
/*修改列名*/
/*alter table kecheng*/
exec sp_rename 'kecheng.age','userage','COLUMN';
/*添加列名*/
alter table kecheng
add grade varchar(10) not null
/*删除列名*/
drop table kecheng
/*设置外键*/
alter table 表名
add constraint 外键名 foreign key(列名)reference 外表名(该列名)

 

/*插入表的数据*/
insert into 表名(要插入的列名)
values (数据),(数据)。。。
/*导入别的表中的数据*/
inster into 表名(要插入的列名)
select 要选择插入的列名 from 选择插入的表名


/*查询*/
distinct 去重 top 要查的行数

select distinct 列名 from 表名 where条件
select top 行数 列名 from 表名 where条件

/*修改表记录*/
update table 表名
 set 列名=修改的值
where 条件
/*删除表记录为delete*/
delete from 表名 where 条件

 


1.SQL 创建索引

CREATE [ UNIQUE 唯一的意思] [ CLUSTERED聚集索引 | NONCLUSTERED非聚集索引 ]
INDEX index_name
ON { table | view } ( column [ ASC | DESC 升序降序] [ ,...n ] )
[] WITH < index_option > [ ,...n] ]
([ ON filegroup ]

< index_option > ::=
    { PAD_INDEX |
        FILLFACTOR = fillfactor |
        IGNORE_DUP_KEY |
        DROP_EXISTING |
    STATISTICS_NORECOMPUTE |
    SORT_IN_TEMPDB  

 

2.删除索引

drop index index_name on table_name ;

alter table table_name
drop index index_name ;

alter table table_name
drop primary key ;

3.当需要快速找出在某个列中有一特定值的行

例如:有一张person表,其中有2W条记录,记录着2W个人的信息。有一个Phone的字段记录每个人的电话号码,现在想要查询出电话号码为xxxx的人的信息。

如果没有索引,那么将从表中第一条记录一条条往下遍历,直到找到该条信息为 ;

如果有了索引,那么会将该Phone字段,通过一定的方法进行存储,好让查询该字段上的信息时,能够快速找到对应的数据,而不必在遍历2W条数据了。
4.索引查询

SQL Server数据库索引信息查询

--sql server查看表中已存在的索引

exec sp_helpindex 表名

-- 查看某個表的索引

SELECT * FROM sys.sysindexes
WHERE id=object_id('RelactionGraph')
 
-- 查看整個庫的索引
SELECT * FROM sys.sysindexes
 
-- 查看所有庫的索引
IF object_id('tempdb..#')IS NOT NULL
    DROP TABLE #
SELECT * INTO # FROM sys.sysindexes WHERE 1=2
 
INSERT INTO #
    EXEC sys.sp_MSforeachdb @command1='Select * from ?.sys.sysindexes'
     
SELECT * FROM #

Oracle数据库索引信息查询
oracle对于数据库中的表信息,存储在系统表中。查询已创建好的表索引,可通过相应的sql语句到相应的表中进行快捷的查询:
1. 根据表名,查询一张表的索引
 select * from user_indexes where table_name=upper('party_customer');
2. 根据索引号,查询表索引字段
1 select * from user_ind_columns where index_name=('索引名');
3.根据索引名,查询创建索引的语句
 select dbms_metadata.get_ddl('INDEX','SQL100310102315181') from dual ; --['用户名']可省,默认为登录用户
PS:dbms_metadata.get_ddl还可以得到建表语句,如:
 SELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用户名']) FROM DUAL ; //取单个表的建表语句,['用户名']可不输入,默认为登录用户

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用户下所有表的建表语句

当然,也可以用pl/sqldeveloper工具来查看相关的表的各种信息。

查询用户的索引  
select  index_name,table_name,tablespace_name,  
    index_type,uniqueness , status   
    from dba_indexes where owner='TPSHDEV';  
查询用户的索引列  
select index_name,table_name,column_name,  
    index_owner,table_owner  
from dba_ind_columns  
where table_owner='TPSHDEV';  
查询Orcale数据库执行计划
EXPLAIN PLAN FOR
SELECT * FROM PARTY_CUSTOMER WHERE ID = '000000003034' ; --要解析的SQL脚本
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

 

 

创建CS_KC视图,包括计算机专业各学生的学号,其选修的课程号及成绩。要保证对该视图的修改都符合

--专业为计算机这一条件

create view 视图名
   as

        select *

           from XSB,CJB

           WHERE XSB.学号=CJB.学号 AND 专业='计算机'

        WITH CHECK OPTION

       

--创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学号(在视图中列名为num)和平均成绩

--(在视图中列名为score_avg)

CREATE VIEW XS_KC_AVG(num,score_avg)

   AS

   SELECT 学号,AVG(成绩)

      FROM CJB

      GROUP BY 学号

USE PXSCJ

GO

 

视图的修改

--将CS_XS视图修改为只包含计算机专业学生的学号,姓名,和总学分

ALTER VIEW CS_XS

AS

   SELECT 学号,姓名,总学分

   FROM XSB

   WHERE 专业='计算机'

 

--视图CS_KC是加密存储视图,修改其定义,包括学号,姓名,选修的课程号,课程名和成绩

ALTER VIEW CS_KC WITH ENCRYPTION

AS

SELECT XSB.学号,XSB.姓名,CJB.课程号,KCB.课程名,成绩

   FROM XSB,CJB,KCB

   WHERE XSB.学号=CJB.学号

      AND CJB.课程号=KCB.课程号

      AND 专业='计算机'

   WITH CHECK OPTION

--删除视图

DROP VIEW CS_XS,CS_KC
分类: 数据库-SQL SEVER

/**
*用户管理操作
*/

//查看数据库用户
use mysql;
select User from user;
或者也可以在当前数据库中,查看当前用户;
use stu;
select user();

//创建用户
use masql
create user 用户名 identified by '密码'

//删除用户
drop user 用户名


/**
*用户权限操作
*/

//查看用户的权限
select *  where user ='用户名'\G;

//授权权限
grant all privileges on 用户名

flush privileges;//刷新权限表

select user.db.select_priv.insert_priv,update_priv.delete_priv
    from db
where user ='用户名';

//回收权限

revoke all privileges on stu.*
to test;

flush privileges;//刷新权限表

select user.db.select_priv.insert_priv,update_priv.delete_priv
    from db
where user ='用户名';

 

 

 

 

实例:

/*数据库建立*/

create database LSS

on primary(

name = 'LSS_dat',

filename='D:\data\LSS.mdf',

size=10MB,

maxsize=50MB,

filegrowth=5MB

)

 

log on (

name='LSS_log',

filename='D:\data\LSSlog.ldf',

size=5MB,

maxsize=25MB,

filegrowth=5MB

);

 

 

 

 

/*建立表格*/

 

 

 

CREATE  TABLE  DZ

(Dno  CHAR(10) not null  PRIMARY KEY,

Dname  CHAR(10)  not null,

Dsex  CHAR(2)  not NULL,

Dphone  CHAR(12) ,

Dsdept  CHAR(20) not null,

jieshu  CHAR(8),

huanshu CHAR(8),

)

 

CREATE  TABLE  BS

(Bno  CHAR(20)  not null  PRIMARY KEY,

Slb  CHAR(50)  not null,

)

 

CREATE  TABLE GLY

(Gno  CHAR(12) not null primary key,

Gname  CHAR(12) not null,

Gsex   CHAR(2) not null,

Gphone   CHAR(12),

Bno CHAR(20),

foreign key(Bno) references BS(Bno)/*BS表中的Bno为该表的外键*/

)

 

 

CREATE  TABLE  SJ

(Sno  CHAR(20) not null primary key,

Sname  CHAR(50) not null,

Szz CHAR(12) not null,

Scbs CHAR(50) not null,

Sjj  CHAR(200),

)

 

 

 

CREATE  TABLE  JHB

(Dno  CHAR(20)  not null  primary key,

Sname CHAR(50) not null,

SNO  CHAR(20) not null,

Dname  CHAR(10)  not null,

Slb  CHAR(50) not null,

jieshu  CHAR(8),

huanshu CHAR(8),

)

 

/*插入表数据*/

 

BS表

INSERT INTO [dbo].[BS]

           ([Bno]

           ,[Slb])

     VALUES

          ('A' ,'数学类书籍'),('B','计算机类'),('C','语言类书籍')

 

DZ表

INSERT INTO [dbo].[DZ]

           ([Dno]

           ,[Dname]

           ,[Dsex]

           ,[Dphone]

           ,[Dsdept]

           ,[jieshu]

           ,[huanshu])

     VALUES

           (2018304201,'张儿' ,'男', 17364904850 ,'计算机',20200501,20200601),

                 (2018304202,'李疯','女',19485284512,'计算机',20200405,20200504),

                 (2018304251,'何老','男',17985264560,'给排水',20200421,20200601),

                 (2018304265,'吴帅','女',17945632589,'应用数学',20200104,20200205),

                 (2018304952,'宋宝','男',18945612395,'软件工程',20200321,20200421),

                 (2018304512,'康康','女',17845925632,'英语',20200405,20200408)

GLY表

 

INSERT INTO [dbo].[GLY]

           ([Gno]

           ,[Gname]

           ,[Gsex]

           ,[Gphone]

           ,[Bno])

     VALUES

       

                 ('A1','赵云','男',17985264563,'A'),

                 ('A2','张飞','男',14512367855,'A'),

                 ('B1','孙芳','女',15985264563,'B'),

                 ('B2','周玉','女',18525465985,'B'),

                 ('C1','张辽','男',18945627893,'C'),

                 ('C2','徐晃','男',15678944562,'C')

GO

 

SJ表

 

INSERT INTO [dbo].[SJ]

           ([Sno]

           ,[Sname]

           ,[Szz]

           ,[Scbs]

           ,[Sjj])

     VALUES

           (01,'计算机组成原理','张清华','清华大学出版社','计算机专业的相关书籍'),

                 (02,'C语言','李建军','高等教育出版社','计算机编程推荐书籍'),

                 (03,'java课程设计','胡学金','江南出版社','计算机编程入门推荐书籍'),

                 (04,'高等数学','徐军','高等教育出版社','大学基础数学'),

                 (05,'大学英语','吴海飞','高等教育出版社','英语专业基础')

 

GO

 

JHB表

INSERT INTO [dbo].[JHB]

           ([Dno]

           ,[Sname]

           ,[SNO]

           ,[Dname]

           ,[Slb]

           ,[jieshu]

           ,[huanshu])

     VALUES

        

                 (2018304202,'java课程设计',03,'李疯','计算机类',20200405,20200504)

GO

 

 

/*建立视图*/

建立姓名视图

create view DZ_name

  as

    select [Dname],[Dsex],[Dsdept],[Dno]

    from [dbo].[DZ]

/*建立索引*/

 

 

 

 

在读者表中建立学号索引

create index 学号

       on [dbo].[DZ]([Dno] asc)

 

删除操作为drop index学号 on [dbo].[DZ]

/*修改操作*/

例如读者表中修改李疯的姓名为李凤

UPDATE [dbo].[DZ]

   SET [Dno] = '李凤'

     

 WHERE  [Dno] = '李疯'

 

/*查找操作*/

例如DZ中名字叫张儿的所有消息

Select  [Dname],[Dsex],[Dsdept],[Dno]

From DZ_name

Where Dname=’张儿’

 

SELECT [Dno]

      ,[Dname]

      ,[Dsex]

      ,[Dphone]

      ,[Dsdept]

      ,[jieshu]

      ,[huanshu]

  FROM [dbo].[DZ]

  where [Dname]='张儿'

GO

 

/*删除操作*/

删除DZ表中康康的记录

 

DELETE FROM [dbo].[DZ]

      WHERE [Dname]='康康'

GO

/*数据库安全性操作*/

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值