SQL语句大全(第21天) (转)

本文详细介绍了SQL的基本操作,包括创建数据库和表、数据的增删改查等,并深入探讨了索引的作用及优缺点、多表关联查询等内容。

第一大章 

创建数据库 
CREATE(创建) DATABASE(数据库) ace(数据库名字); 

打开数据库 
USE(打开) ace(数据库名字); 

给表格 
SHOW(显示) TABLES(所以列表名字); 

创建表(用户名),id(ID),user(用户),password(密码),age(年龄),sex(性别),IsOk(是否有效) 

CREATE TABLE users(列表名) (user_id(字段名字) INT(字段类型), user_name(字段名字) VARCHAR(字段类型)(20)(类型长度), 
password (字段名字)VARCHAR(字段类型)(20)(字段类型长度), age(字段名字) VARCHAR((字段类型)20)(字段类型长度), sex(字段名字) VARCHAR(数据类型)(2)(类型长度), 
IsOk(字段名字) INT(字段类型), binrthday (字段名字)DATETIME(字段类型)); 

插入一条数据 

INSERT(插入) INTO(进入) users(列表名)  (user_id(字段名字),user_name(字段名字),password(字段名字),age(字段名字),sex(字段名字),IsOk(字段名字)) VALUES(给字段赋值) (111(字段信息),'x(字段信息)','111222(字段信息)','50(字段信息)','n(字段信息)',1(字段信息)); 

查询 
SELECT(选择) *(星号是多个意思) FROM(来自) users(列表名); 

DESCRIBE(叙述) users(列表名); 

更新 
UPDATE(更新) users(列表名) SET(安置) user_name(字段类型)='n(字段信息)' WHERE(到哪里) user_name(字段类型)='x(字段信息)'; 

删除一条数据 
DELETE(删除) FROM(来自) users(列表名) WHERE(到哪里) sex(字段名)='n(字段信息)'; 

在修改自增值时要注意先增加主键 
ALTER(改变) TABLE(目录) users(列表名) ADD(增加) CONSTRAINT(自增值) PK_users(主键名) PRIMARY(主要) KEY(键、要是)(user_id(字段名));  

增加自增值的命令 

ALTER(改变) TABLE(目录) users(列表名) MODIFY(修改) user_id(字段名) INT(字段类型) AUTO_INCREMENT(自增值); 

默认值 

ALTER(改变) TABLE(目录) users(列表名) MODIFY(修改) IsOk(字段名) INT(字段类型) NOT NULL(不能为空) DEFAUIT(默认值) 0(默认值设置为0); 

第二大章 

使用自增值后插入数据但是里面不带有(user_ID,IsOk) 

INSERT(插入) INTO(进入) users(列表名) 

(user_name(字段名),password(字段名),age(字段名),sex(字段名))VALUES(给字段赋值)('zhaoer(字段信息)','334322(字段信息)','31(字段信息)','v(字段信息)'); 

把两个字段修改成一个可以为空 一个不能为空 在不能为空的字段内不写数据看它的报错 

INSERT(插入) INTO(进入) users(列表名) 

(user_name(字段名),password(字段名),age(字段名),sex(字段名),family_id(字段名))VALUES(给字段赋值)('wangwu(字段信息)','44556(字段信息)',20(字段信息)); 

错误的语句 

INSERT(插入) INTO(进入) users(列表名) 

(user_name(字段名),password(字段名),age(字段名),sex(字段名),family_id(字段名))VALUES(给字段赋值)('wangwu(字段信息)','44556(字段信息)',20(字段信息),'v(字段信息)',1(字段信息)); 

正确的语句 

新建一个家庭表两个字段ID 家庭名(英文) 

CREATE(创建) TABLE(目录) family(列表名) (family_id(字段名) INT(字段类型),family_name(字段名) VARCHAR(字段类型)(10)(字段类型长度)); 

INSERT(插入) INTO(进入) family(列表名) (family_name(字段名))VALUES(给字段赋值)('jiangjia(字段信息)'); 

ALTER(改变) TABLE(目录) family(列表名) ADD(增加) CONSTRAINT(强制) PK_family(主键名) PRIMARY(主要) KEY(键、钥匙)(family_id(字段名)); 
创建主键 

ALTER(改变) TABLE(目录) family(列表名) MODIFY(修改) family_id(字段名) INT(字段类型) AUTO_INCREMENT(自增值); 

自增值 

CREATR(创建) TABLE(目录) users(列表名)( 
user_id(字段名) INT(字段类型) NOT NULL(不能为空)  AUTO_INCREMENT(自增值) PRIMARY(主要) KEY(键、钥匙),Marry(字段名) INT(字段类型) DEFAUIT(默认值) 0(默认值设置为空0)); 

在创建表是主键和默认值同时增加进入再把默认值加进去 

users表新增一个字段叫家庭ID 

ALTER(改变) TABLE(目录) users(列表名) ADD(增加) family_id(字段名) INT(字段类型) NOT NULL(不能为空); 

作一个关联查询 当然要把users里面的数据补充完整 

SELECT(选择) *(星号代表多个) FROM(来自) users(列表名) LEFT(左) JOIN(连接) family(列表名) ON(向) users(表名).family_id(字段名) = family(列表名).family_id(字段名); 

左连接 
左连接会把jiangjia 和 wanjia 的数据全都显示出来 

SELECT(选择) * FROM(来自) users(列表名) RIGHT(右) JOIN(连接) family(列表名) ON(向) users(列表名).family_id(字段名) = family(列表名).family_id(字段名); 

右连接 
有连接只会把jiangjia的数据信息显示出来 

SELECT(选择) * FROM(来自) users(列表名) INNER(内) JOIN(连接) family(列表名) ON(向) users(列表名).family_id(字段名) = family(列表名).family_id(字段名); 

内连接 
内连接也是现在显示出跟右连接一样的效果 
              

增加一个字段 
ALTER(改变) TABLE(目录) users(列表名) ADD(增加) family_id(字段名) INT(字段类型) NOT NULL(不能为空); 

第三大章 

将users里面的family_id删除 

ALTER(改变) TABLE(目录) users(列表名) DROP(删除) COLUMN(列) family_id(字段名); 
将users表内的整个family_id字段全部删除 

将是家人认识的人全部加入users表详细资料 


INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(给字段赋值)(105(字段信息),'chenpeng(字段信息)',13(字段信息),37(字段信息),'n(字段信息)','1976-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(给字段赋值)((106(字段信息),'chenmihua(字段信息)',14(字段信息),56(字段信息),'n(字段信息)','1956-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(107(字段信息),'jianglanying(字段信息)',14(字段信息),54(字段信息),'v(字段信息)','1958-01-01(字段信息)'); 

INSERT(插入) INTO(进入)users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(108(字段信息),'luzhongping(字段信息)',15(字段信息),52(字段信息),'n(字段信息)','1960-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(109(字段信息),'jiangxiuying(字段信息)',16(字段信息),50(字段信息),'v(字段信息)','1962-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1010(字段信息),'wanshanfeng(字段信息)',17(字段信息),49(字段信息),'n(字段信息)','1963-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1011(字段信息),'jiangjianying(字段信息)',18(字段信息),48(字段信息),'v(字段信息)','1965-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1012(字段信息),'liuhaixiang(字段信息)',19(字段信息),47(字段信息),'n(字段信息)','1967-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1013(字段信息),'jiangjianlan(字段信息)',19(字段信息),47(字段信息),'v(字段信息)','1969-01-01(字段信息)'); 

INSERT(插入) INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1014(字段信息),'xinzhiqiang(字段信息)',20(字段信息),46(字段信息),'n(字段信息)','1971-01-01(字段信息)'); 

INSERT(插入)INTO(进入) users(列表名) (user_id(字段名),user_name(字段名),password(字段名),age(字段名),sex(字段名),binrthday(字段名)) 
VALUES(值)(1015(字段信息),'jiangyulan(字段信息)',21(字段信息),46(字段信息),'v(字段信息)','1971-01-01(字段信息)'); 

将她们所在的家庭全部增加进入familys表内 

INSERT(插入) INTO(进入) familys(列表名) (family_id(字段名),family_name(字段名)) 
VALUES(值)(22(字段信息),'chenjia(字段信息)'); 

INSERT(插入) INTO(进入) familys(列表名) (family_id(字段名),family_name(字段名)) 
VALUES(23,'lujia'); 

INSERT(插入) INTO(进入) familys(列表名) (family_id(字段名),family_name(字段名)) 
VALUES(值)(24(字段信息),'wanjia(字段信息)'); 

INSERT(插入) INTO(进入) familys(列表名) (family_id(字段名),family_name(字段名)) 
VALUES(值)(25(字段信息),'xinjia(字段信息)'); 

INSERT(插入) INTO(进入) familys(列表名) (family_id(字段名),family_name(字段名)) 
VALUES(值)(26(字段信息),'liujia(数据信息)'); 

创建一个第三方表FamilyUser里面有三个数据id users_id family_id把前两章表的id都进来 

CREATE(创建) TABLE(目录) FamilyUser(列表名) (familyuser_id(字段名) INT(字段类型) NOT NULL(不能为空) AUTO_INCREMENT(自增值) PRIMARY(主要) KEY(键、钥匙),user_id(字段名) INT(字段类型),family_id(字段名) INT(字段类型)); 
创建FamilyUser表 

INSERT(插入) INTO(进入) FamilyUser(表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(101(字段信息,24(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(102(字段信息,25(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(103(字段信息,26(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(104(字段信息,23(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(105(字段信息,23(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(106(字段信息,23(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(107(字段信息,21(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(108(字段信息,23(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(109(字段信息,21(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1010(字段信息,24(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1011(字段信息,21(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1012(字段信息,26(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1013(字段信息,21(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1014(字段信息,25(字段信息); 

INSERT(插入) INTO(进入) FamilyUser(列表名) (user_id(字段名),family_id(字段名)) 
VALUES(值)(1015(字段信息,21(字段信息); 

用多对多的关联查询实现出 用户名ID 用户名 家庭名字 

SELECT(选择) users(列表名).user_id(字段名),users(列表名).user_name(字段名),familys(列表名).family_name(字段名) FROM(来自) users(列表名) LEFT(左) JOIN(连接诶) familyuser(列表名) ON(向) users(列表名).user_id(字段名) = familyuser(列表名).user_id(字段名) LEFT(左) JOIN(连接) familys(列表名) ON(向) familyuser(列表名).family_id(字段名) = familys(列表名).family_id(字段名); 
通过左连接完成所需要的查询 

在MYSQL 有多少种字段类型 分别多长 对应java里的类型有多少种写在一张单独博客里 

索引的作用 
索引就想数据库里面的目录在没有时候你要一片一片的查有了索引 
你就可以直接去看目录就知道在多少片有你要找的东西了 

就是让复杂的关联查询变快了 

ALTER(改变) TABLE(目录) familyuser(列表名) ADD(增加) INDEX(索引) (family_id(字段名)) ; 
创建一个索引 

SELECT(选择) name_id(字段名),family_id(字段名) FROM(来自) familyuser(列表名) WHERE(到哪去) family_id(字段名) = 21(字段信息); 
查询的索引我创建了一个family_id的索引那么family_id它在查询时会 
出现在索引文件里只有一行就是family_id通过找到对应的21在出现你要显示的信息 
索引值它会自动排序的 


ALTER(改变) TABLE(目录) family(列表名) RENAME(改名) TO(技术观察) familys(列表名); 
修改表名 

第四大章 
在users表里创建一个索引 索引有什么好处有什么坏处 

ALTER(改变) TABLE(目录) users(列表名) ADD(增加) INDEX(索引) (user_name(字段名)); 
创建索引 

索引的好处 
索引的好处就是可以在众多的信息中用最快的速度的找到你所需要的信息并且可以自动为我进行排序,索引就想是目录在众多的数据信息当中标注出需要查找的数据信息。 

索引的坏处 
索引的文件会占内存的磁盘空间,如果索引做的太多了的话可能索引文件会比数据文件更快的达到最大文件尺度。索引文件加快了收索但是增加了插入和删除的时间和更新索引列中的值的时间。 


用users表完成统计数据库有多少行 所有人的年龄加起来有多少岁 根据familys表统计出 
一共有多少人 

SELECT(选择) COUNT(测验)(*)(星号表示多个) FROM(来自) users(列表名); 
查询一个表里有多少行 

SELECT(选择) SUM(计算)(age)(年龄) FROM(来自) users(列表名); 
算出age的总合 

SELECT(选择) COUNT(测验)(*)(星号表示多个)FROM(来自) users(列表名) LEFT(左) JOIN(连接) familyuser(列表名) ON(向) users(选择).user_id(字段名) = familyuser(列表名).user_id(字段名) LEFT(左) JOIN(连接) familys(列表名) ON(向) familyuser(列表名).family_id(字段名) = familys(列表名).family_id(字段名); 
统计出有多少人 

将users familys familyuser表的备注填写完整 主要的内容是是否增加主键、自增值、默认值、索引 

users表 
字段名          数据类型        长度      备注 
name_id         INT             11        主键、自增值 
user_name       VARCHAR         20        索引 
password        VARCHAR         20        Null 
age             VARCHAR         20        Null 
sex             VARCHAR         2         Null 
IsOk            INT             11        默认值 

familys表 
字段名          数据类型        长度      备注 
family_id       INT             11        主键、自增值 
family_name     VARCHAR         10        Null 

familyuser表 
字段名          数据类型        长度      备注 
familyuserid    INT             11        主键、自增值 
family_id       INT             11        Null 
user_id         INT             11        Null 

7、在执行查询语句的时候选择性的需要多少行比如有10行只需要前面5行或者后面5行或者中间5行 

SELECT(选择) haoduo_id(字段名) , haoduo_name(字段名) FROM(来自) haoduo(列表名) WHERE(到哪里) haoduo_name(字段名)='i(字段信息)' LIMIT(批量管理) 0,5(0到5); 
意思是说我要查询 haoduo表里的 haoduo_id 和 haoduo_name 要求 haoduo_name等于 
i 我需要的限度 
第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1) 
它是以一种返回的方式出现 而不是已一种显示的方法出现 

ALTER(改变) TABLE(目录) users(列表名) DROP(删除) COLUMN(列) remark((字段名); 
删除字段 


第五大章 


对比表里人的年龄取一个70年到80年之间的年龄包括70年不包括80年也是70年到79年之间的年份。 

SELECT(选择) user_name(字段名) , binrthday(字段名) FROM(来自) users(列表名) WHERE(到哪里) binrthday(字段名)>='1970-01-01(字段信息)' AND(并且) binrthday(字段名) <'1981-01-01(字段信息)'; 

date型需要加''号 

对比两个人生日(插入一行生日用英文)比较两个人年龄的大小显示出较大的一方年龄 

SELECT(选择) max(最多)(age)(年龄) FROM(来自) users(列表名)  WHERE(到哪里) user_name(字段名)='chenpeng(字段信息)'OR(或者) user_name(字段名)='jianglanying(字段信息)'; 
两个人的年龄进行对比取最大的显示出来 


重新学习视图和存储过程今天完成 

视图隐藏了底层的表结构,简化了数据访问操作因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据 

使用视图,方便了权限管理,让用户对视图有权限而不是对底层表有权限进一步加强了安全性 

视图提供了一个用户访问的接口,当底层表改变后,改变视图的语句来进行适应,使已经建立在这个视图上客户端程序不受影响 

普通视图(Regular(有规律的) View(视图)) 

CREATE(创建) VIEW(视图) v_Test_View1(视图名) 
AS (换成) 
SELECT(选择) TOP(顶) 100 *(多个) FROM(来自) HumanResources(休曼来源).Employee(雇工) 

SELECT(选择) *(多个) FROM(来自) v_Test_View1(视图名) 

索引视图(Indexed(编入索引) View(视图)) 

CREATE(创建) VIEW(视图) v_Test_IndexedView(视图名) 
WITH(和) SCHEMABINDING (计划捆绑住) 
AS (换成) 
SELECT(选择) p(列表名).Name(字段名),s(列表名).OrderQty(字段名),s(列表名).SalesOrderDetailID 
(字段名)FROM(来自) Production(列表名).Product p(字段名) 
inner(内) join(连接) Sales(列表名).SalesOrderDetail s(字段名) 
ON(向) p(列表名).ProductID(字段名)=s(列表名).ProductID(字段名) 
GO 

CREATE(创建) UNIQUE(统一查询) CLUSTERED(成群的) INDEX(索引) indexedview_test1(列表名) 
ON(向) v_Test_IndexedView(列表名)(SalesOrderDetailID(字段名)) 

分割视图(Partitioned(分段的) View(视图名)) 

CREATE(创建) VIEW(视图) v_part_view_test(视图名) 
AS (换成) 
SELECT(选择) *(多个) FROM(来自) Employee100 (雇工100) 
UNION (友联) 
SELECT(选择) *(多个) FROM(来则) Employee200 (雇工200) 

SELECT(选择) *(多个) FROM(来自) v_part_view_test (视图名) 
WHERE(到哪里) EmployeeID(字段名)=105(字段信息) 

CREATE(创建) VIEW(视图) v(视图名) AS(换成) SELECT(选择) *(星号是多个的意思) FROM(来自) user_id(users表里的user_id字段名内的信息); 
创建视图列表 

SELECT(选择) *(星号多个意思) FROM(来自) v(视图名); 
查询视图列表 

DROP(删除) VIEW(视图) v(视图名); 
删除视图列表 
写一个存储过程可以传入变量 参照自己的表写出来 

DELIMITER //  
CREATE PROCEDURE proc1(OUT s int)  
BEGIN 
SELECT COUNT(*) INTO s FROM user;  
END 
//  
DELIMITER ; 

SET @p_in=1;  
CALL demo_in_parameter(@p_in); 
SELECT @p_in 

1、输入 

输入里面分两种  1.1、验证,没输入、输出不合规范,超标 
                1.2、反馈、错了、超标、不符合规范 

2、处理 

处理里面分两种  2.1、逻辑结果正确 
                2.2、算法速度加快 

3、输出结果 

输出结果分两种  3.1、格式(XML、Json、对象) 
                3.2、验证最后的结果是否正确 

以终为始:意思是要你的终点来做你的起点高要求对自己。 

数据备份和恢复的学习尝试数据备份回复数据学习 

CREATE(创建) TABLE(目录) iii(原本存在的数据库).newusers(创建是一个新表) LIKE(模糊查询) ace(原本存在的数据库).users(原本存在的表) ; 
备份数据就是将数据进行表格化存储在硬盘内可以更好保护重要的数据 

INSERT(插入) INTO(进入) iii(数据库名).newusers(备份的表) SELECT(选择) *(星号代表多个) FROM(来自) ace(数据库名).users(列表名) ; 
回复数据是将一些有用的数据回复出来。 

USE(开打) ace(数据库名);SELECT(选择) *(*号多个意思) FROM(来自) users(列表名) INTO(进入) OUTTFILE(备份) "d:/bdacc.txt"; 
备份数据库里的列表

轻轻松松学数据库!!SQL Server 2008是微软的SQL Server数据库中的最新版本,在该版本的数据库产品中融入了更多商业智能的内容。本书中也使用了一篇专门讲解了与商业智能有关的一些内容。 本书总分为5篇,共21章。第一篇主要讲解数据库的基础,包括数据库的概念及安装。第二篇讲解数据库管理的常用知识,包括数据库的管理、表的管理、确保数据的完整性及用户权限的设置等内容。第篇主要讲解SQL的编程,包括T-SQL语言、存储过程及触发器。第四篇讲解与商业智能有关的内容,包括集成服务、报表服务和分析服务。最后一篇是综合案例篇,分别使用.NET和Java语言实现了与SQL Server 2008的连接,并完成了图书管理系统和在线订餐系统。 第一篇 SQL Server 2008基础篇 第1章 学习数据库的准备 ( 教学视频:58分钟) 15 1.1 认识数据15 1.1.1 为什么要使用数据15 1.1.2 认识数据库产品 15 1.2 了解数据库对象 17 1.2.117 1.2.2 视图 17 1.2.3 索引 18 1.2.4 存储过程 18 1.2.5 触发器 18 1.3 认识SQL语言 18 1.3.1 什么是SQL 18 1.3.2 SQL语言的分类 19 1.4 绘制E-R图设计数据库 20 1.4.1 绘制E-R图的基本要素 20 1.4.2 E-R图绘制实例 22 1.5 小结 24 1.6 习题 24 第2章 数据库的安装 ( 教学视频:26分钟) 26 2.1 SQL Server 2008版本介绍 26 2.1.1 SQL Server 2008服务器版 26 2.1.2 SQL Server 2008专业版 26 2.2 SQL Server 2008环境需求 27 2.2.1 SQL Server 2008 Enterprise的 软硬件要求 27 2.2.2 SQL Server 2008 Enterprise Evaluation的软硬件要求 28 2.3 安装SQL Server 2008 29 2.3.1 自己动手安装SQL Server 2008 29 2.3.2 安装示例数据库 39 2.4 认识SQL Server Management Studio (企业管理器) 40 2.4.1 访问SQL Server Management Studio 40 2.4.2 SQL Server Management Studio 菜单简介 42 2.4.3 查询编辑器窗口 43 2.4.4 对象资源管理器 44 2.4.5 SQL编辑器 44 2.5 小结 45 2.6 习题 45 第二篇 SQL Server 2008管理篇 第3章 数据库操作 ( 教学视频:43分钟) 47 3.1 在SSMS中创建数据库 47 3.1.1 数据库命名需要注意的问题 47 3.1.2 数据库的所有者与权限 48 3.1.3 创建数据库 48 3.2 在SSMS中修改数据库配置 52 3.2.1 使用SSMS修改数据库配置的 通用步骤 52 3.2.2 在SSMS中添加数据库文件 53 3.2.3 在SSMS中删除数据库文件 53 3.2.4 修改数据库的所有者 55 3.2.5 限制用户的访问 56 3.2.6 设置用户对数据库的使用权限 57 3.2.7 修改数据库名称 59 3.3 使用SQL语句创建、修改、 删除数据库 59 3.3.1 用CREATE DATABASE语句 创建数据库 59 3.3.2 用ALTER DATABASE语句 修改数据库 60 3.3.3 用DROP DATABASE语句 删除数据库 62 3.4 附加与分离数据库 63 3.4.1 分离数据库 63 3.4.2 附加数据库 64 3.5 编写数据库脚本文件 66 3.6 综合练习 67 3.7 小结 69 3.8 习题 69 第4章 数据表操作 ( 教学视频:39分钟) 71 4.1 认识数据类型 71 4.1.1 字符型数据类型 71 4.1.2 数值型数据类型 72 4.1.3 日期和时间数据类型 73 4.1.4 其他数据类型 73 4.2 创建数据表 74 4.2.1 创建数据表的语法 74 4.2.2 创建主键 75 4.2.3 使用SSMS创建表 76 4.2.4 创建标识列 78 4.3 修改表结构 79 4.3.1 修改表结构的语法 80 4.3.2 在SSMS中修改表结构 82 4.4 表的删除、截断与重命名 82 4.4.1 使用SSMS删除和重命名表 83 4.4.2 使用DROP TABLE语句删除表 83 4.4.3 截断表 84 4.4.4 重命名表 85 4.5 小结 85 4.6 习题 85 第5章 确保数据完整性 ( 教学视频:89分钟) 87 5.1 认识约束 87 5.1.1 什么是约束 87 5.1.2 约束的类型 88 5.1.3 约束的语法 89 5.2 使用约束 90 5.2.1 利用SSMS创建主键约束 90 5.2.2 利用T-SQL增加主键约束 91 5.2.3 利用SSMS创建外键约束 92 5.2.4 利用T-SQL增加外键约束 93 5.2.5 利用SSMS工具创建CHECK 约束 94 5.2.6 利用T-SQL增加CHECK约束 95 5.2.7 利用SSMS工具删除约束 96 5.3 事务的使用 96 5.3.1 什么是事务 96 5.3.2 事务的特性 97 5.3.3 事务的模式类型 97 5.3.4 事务的保存点 99 5.4 并发控制 100 5.4.1 并发访问的问题 100 5.4.2 SQL Server中的锁 101 5.4.3 查看活跃事务 102 5.4.4 事务隔离级别 104 5.4.5 事务隔离级别的设置 104 5.5 事务的阻塞 105 5.6 死锁 107 5.6.1 死锁的产生 107 5.6.2 处理死锁 108 5.6.3 预防死锁 109 5.7 索引 109 5.7.1 认识索引 110 5.7.2 索引的创建 111 5.7.3 索引的管理 113 5.8 小结 115 5.9 习题 116 第6章 用户和权限管理 ( 教学视频:37分钟) 117 6.1 用户管理 117 6.1.1 创建使用Windows身份验证的 SQL Server 登录名 117 6.1.2 创建使用SQL Server身份验证的 SQL Server登录名 120 6.1.3 利用Transact-SQL创建 登录账号 121 6.1.4 创建数据库用户 122 6.1.5 使用Transact-SQL创建 数据库用户 123 6.1.6 登录账号和数据库用户的关系 124 6.2 认识角色 125 6.2.1 角色的划分 125 6.2.2 创建角色 127 6.2.3 给用户授予角色 128 6.3 认识权限 129 6.3.1 数据控制语言语法 129 6.3.2 给用户授予权限 131 6.4 架构 131 6.4.1 认识架构 132 6.4.2 架构的创建使用 133 6.4.3 架构的修改删除 134 6.5 小结 134 6.6 习题 135 第7章 数据的导入/导出与备份/恢复 ( 教学视频:27分钟) 136 7.1 了解SQL Server导入和导出向导 136 7.2 导入/导出数据 138 7.2.1 数据的导出 138 7.2.2 数据的导入 142 7.3 数据备份 145 7.3.1 认识数据备份 145 7.3.2 使用SSMS工具备份数据146 7.3.3 使用SSMS工具差异备份数据147 7.4 恢复数据 148 7.4.1 认识恢复数据 148 7.4.2 如何修改恢复模式 149 7.4.3 使用SSMS恢复数据150 7.5 小结 151 7.6 习题 151 第8章 使用SQL Server 2008中 自动化管理功能 ( 教学视频:20分钟) 153 8.1 认识SQL Server代理 153 8.1.1 什么是SQL Server 代理 153 8.1.2 使用SQL Server代理 154 8.2 认识作业 155 8.2.1 什么是作业 155 8.2.2 创建作业 156 8.2.3 管理作业 160 8.3 认识警报 163 8.3.1 创建警报 164 8.3.2 在警报中触发作业 165 8.3.3 管理警报 166 8.4 认识操作员 166 8.4.1 创建操作员 167 8.4.2 管理操作员 169 8.5 小结 169 8.6 习题 170 第9章 查询数据 ( 教学视频:64分钟) 171 9.1 在SSMS中查看数据 171 9.2 使用简单SELECT语句查询数据 171 9.2.1 查询表中所有数据 171 9.2.2 查询表中指定字段的数据 172 9.2.3 查询结果中去除重复信息 174 9.2.4 根据现有列值计算新列值 174 9.2.5 命名新列 175 9.2.6 将查询结果保存为新表 176 9.2.7 连接字段 177 9.3 使用SELECT语句获取满足查询 条件的数据 178 9.3.1 指针与字段变量的概念 178 9.3.2 条件表达式 179 9.3.3 WHERE子用法 181 9.3.4 根据条件查询数值数据 182 9.3.5 根据条件查询字符数据 183 9.3.6 根据条件查询日期数据 184 9.3.7 按范围查询数据 185 9.3.8 查询NULL值 186 9.4 排序查询数据 186 9.4.1 按单列排序 187 9.4.2 设置排序方向 187 9.4.3 按多列排序 188 9.4.4 按字段位置排序 188 9.4.5 查询前5行数据 189 9.4.6 WHERE与ORDER BY的 结合使用 189 9.5 高级条件查询 190 9.5.1 AND运算符 190 9.5.2 OR运算符 191 9.5.3 AND与OR的优先顺序问题 192 9.5.4 NOT运算符 193 9.5.5 IN运算符 193 9.5.6 LIKE运算符与“%”通配符 195 9.5.7 “_”通配符的使用 197 9.5.8 “[]”通配符的使用 197 9.5.9 定义义字符 198 9.6 小结 199 9.7 习题 19910章 函数与分组查询数据 ( 教学视频:42分钟) 201 10.1 系统函数 201 10.1.1 聚合函数 201 10.1.2 类型换函数 202 10.1.3 日期函数 204 10.1.4 数学函数 206 10.1.5 字符函数 207 10.1.6 其他几个系统函数 208 10.2 分组查询 212 10.2.1 将表内容按列分组 212 10.2.2 聚合函数与分组配合使用 214 10.2.3 查询数据的直方图 215 10.2.4 排序分组结果 215 10.2.5 反查询结果 216 10.2.6 使用HAVING子设置 分组查询条件 217 10.3 小结 218 10.4 习题 218 第11章 多表连接查询和子查询 ( 教学视频:79分钟) 220 11.1 连接查询 220 11.1.1 使用无连接规则连接两表 220 11.1.2 使用有连接规则连接两表 221 11.1.3 使用多表连接查询数据 222 11.1.4 使用表别名简化语句 223 11.1.5 使用INNER JOIN连接查询 223 11.1.6 连接查询实例 224 11.2 高级连接查询 226 11.2.1 自连接查询 226 11.2.2 内连接查询 227 11.2.3 左外连接查询 229 11.2.4 右外连接 230 11.2.5 全外连接 230 11.2.6 交叉连接查询 230 11.2.7 连接查询中使用聚合函数 232 11.2.8 高级连接查询实例 233 11.3 组合查询 235 11.3.1 使用组合查询 236 11.3.2 使用UNION的规则 237 11.3.3 使用UNION得到复杂的统计 汇总样式 238 11.3.4 排序组合查询的结果 238 11.3.5 组合查询的实例 239 11.4 子查询 240 11.4.1 使用返回单值的子查询 240 11.4.2 子查询与聚合函数的配合使用 241 11.4.3 子查询的实例 241 11.5 在SSMS查询设计器中设计查询 242 11.6 综合练习 245 11.7 小结 246 11.8 习题 246 第12章 插入、更新和删除数据 ( 教学视频:39分钟) 248 12.1 在SSMS中插入、更新、删除数据 248 12.1.1 插入数据 248 12.1.2 更新数据 249 12.1.3 删除数据 249 12.2 使用INSERT语句插入数据 250 12.2.1 插入完整的行 250 12.2.2 向日期时间型字段插入数据 251 12.2.3 将数据插入到指定字段 251 12.2.4 将查询结果插入表 252 12.3 使用UPDATE语句更新数据 254 12.3.1 更新单个字段的数据 254 12.3.2 更新多个字段的数据 255 12.3.3 使用表连接更新数据 256 12.3.4 使用UPDATE语句删除 指定字段的数据 256 12.4 使用DELETE语句删除数据 257 12.4.1 使用DELETE语句删除 指定记录 257 12.4.2 在DELETE语句中使用 多表连接 258 12.4.3 使用DELETE语句删除 所有记录 259 12.5 使用TRUNCATE语句删除 所有记录 260 12.6 综合练习 260 12.7 小结 262 12.8 习题 263 第13章 视图 ( 教学视频:38分钟) 264 13.1 视图基础 264 13.2 视图的创建 266 13.2.1 在SSMS中创建视图 266 13.2.2 使用CREATE VIEW语句 创建视图 268 13.2.3 用别名命名视图字段 269 13.2.4 创建视图时的注意事项 270 13.2.5 创建加密视图 271 13.3 查看与修改视图 272 13.3.1 查看视图内容 272 13.3.2 在SSMS中修改视图 272 13.3.3 用ALTER VIEW修改视图 272 13.4 使用视图操作表数据 274 13.4.1 在SSMS中操作 视图中的数据 274 13.4.2 使用INSERT语句插入数据 274
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值