首页数据库数据库sql基础知识 sql数据库基础知识

数据库sql基础知识 sql数据库基础知识

编程之家2023-10-1986次浏览

大家好,今天小编来为大家解答以下的问题,关于数据库sql基础知识,sql数据库基础知识这个很多人还不知道,现在让我们一起来看看吧!

数据库sql基础知识 sql数据库基础知识

sql数据库基础知识

sql数据库基础知识:

一、SQL概述

1、什么是 SQL

SQL(Structured Query Language)是“结构化查询语言”,它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如:MySQL、Oracle、SQL Server等。SQL标准(ANSI/ISO)有:SQL-92:1992年发布的 SQL语言准;SQL:1999:1999年发布的 SQL语言标签;SQL:2003:2003年发布的 SQL语言标签;这些标准就与 JDK的版本一样,在新的版本中总要有一些语法的变化。不同时期的数据库对不同标准做了实现。

虽然 SQL可以用在所有关系型数据库中,但很多数据库还都有标准之后的一些语法,我们可以称之为“方言”。例如 MySQL中的 LIMIT语句就是 MySQL独有的方言,其它数据库都不支持!当然,Oracle或 SQL Server都有自己的方言。

SQL数据库(简单)简答题

Microsoft SQL Server 2000简答题及其答案

数据库sql基础知识 sql数据库基础知识

1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及“仅连接”等安装定义有什么差别?

答:仅客户端工具:仅安装客户端工具。服务器和客户端工具:同时安装服务器和客户端工具。仅连接:仅安装客户端连接。

2.一个数据库中包含哪几种文件?

答:主数据库文件,辅助数据文件,事务日志文件。

3.事务文件和数据文件分开存放有什么好处?

答:因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。

数据库sql基础知识 sql数据库基础知识

4.什么是批处理?使用批处理有何限制?

答:包含一个或多个T-SQL语句的组,从应用程序将一次性发送到SQL Server执行,SQL Server批处理语句作为整体编译成一个可执行单元。

限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处理程序中,有两条语句。第一条语句用来在一张表中插入一个字段,如在User表中插入员工的出生年月;第二条语句则用来引用这个列,如根据身份证号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创建的出身年月字段。

5.数据检索时,COMPUTE和COMPUTE BY产生的结果有何不同?

答:Compute:第一个为明细行第二个为聚合函数的合计 Compute by:第一个为明细行第二个为聚合函数的小计

6.什么是索引?索引分为哪两种?各有什么特点?

答:1、数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息,无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。 2、聚集索引和非聚集索引。

3、聚集索引的特点:行的物理位置和行在索引中的位置是相同的,每个表只能有一个聚集索引,聚集索引的平均大小大约为表大小的5%左右。

非聚集索引特点:若未指定索引类型,则默认为非聚集索引,叶节点页的次序和表的物理存储次序不同,每个表最多可以有249个非聚集索引,在非聚集索引创建之前创建聚集索引。

7.创建索引有什么优点和缺点?

答:优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。

使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。

缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。

8.什么是视图?使用视图的优点和缺点是什么?

答:视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

优点:1隐蔽数据库的复杂性2控制用户提取数据3简化数据库用户管理 4简化查询

缺点:1性能:SQL Server必须把视图的查询转化成对基本表的查询,如果这个视图是由,一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,SQL Server也,把它变成一个复杂的结合体,需要花费一定的时间。2修改限制:当用户试图修改视图的某些行时,SQL Server必须把它转化为对基本,表的某些行的修改。对于简单视图来说,这是很方便的,但是,对于比较复杂的,视图,可能是不可修改的。

9.修改视图中的数据会受到哪些限制?

答:1、必须有权限 2、单表视图直接改

3、多表可在视图中定义 instead of触发器.

4、对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据

5、对视图上的某些列不能修改,这些列是:计算列,内置函数列和行集合函数列

6、对具有NOT NULL的列进行修改时可能会出错。通过视图修改或者插入数据时,必须保证未显示的具有NOT NULL属性的列有值,可以是默认值,IDENTITY等,否则不能像视图中插入数据行。

7、如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败

8、删除基表并不删除视图,建议采用与表明显不同的名字命名规则

10.什么是数据完整性?如果数据库不实施数据完整性会产生什么结果?

答:数据完整性是指数据的精确性和可靠性。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。

11.数据完整性有哪几类?如何实施?

答:1、数据完整性分为四类:实体完整性、域完整性、参照完整性、用户定义的完整性。

2、数据库采用多种方法来保证数据完整性,包括外键、束约、规则和触发器。系统很好地处理了这四者的关系,并针对不同的具体情况用不同的方法进行,相互交叉使用,相补缺点。

12.什么是主键约束?什么是惟一约束?两者有什么区别?

答:主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。

唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。

区别:一个表可以定义多个唯一约束,只能定义一个主键约束;空值得列上可以定义唯一约束,不能定义主键约束。

13.什么是外键,怎样建立外键约束?

答:外键是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

14.什么是存储过程?使用存储过程有什么好处?

答:1、是存储在服务器上的 Transact-SQL语句的命名集合,是封装重复性任务的方法,支持用户声明变量、条件执行以及其他强有力的编程特性。

2、存储过程封装了商务逻辑,确保一致的数据访问和修改。若规则或策略有变化,则只需要修改服务器上的存储过程,所有的客户端就可以直接使用

屏蔽数据库模式的详细资料。用户不需要访问底层的数据库和数据库内的对象

提供了安全性机制。用户可以被赋予执行存储过程的权限,而不必在存储过程引用的所有对象上都有权限

改善性能。预编译的 Transact-SQL语句,可以根据条件决定执行哪一部分

减少网络通信量。客户端用一条语句调用存储过程,就可以完成可能需要大量语句才能完成的任务,这样减少了客户端和服务器之间的请求/回答包

15.什么是触发器?触发器分有什么作用?

答:触发器是一类特殊的存储过程,不能被直接调用,也不传递或接受参数

作用:1、维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制。

2、通过记录所进行的修改以及谁进行了修改来审计表中的信息。

3、当表被修改的时候,自动给其他需要执行操作的程序发信号。

sql数据库的基本操作

命令行

1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES;

2、建立数据库:mysql> CREATE DATABASE库名;

3、建立数据表:mysql> USE库名;mysql> CREATE TABLE表名(字段名 VARCHAR(20),字段名 CHAR(1));

4、删除数据库:mysql> DROP DATABASE库名;

5、删除数据表:mysql> DROP TABLE表名;

6、将表中记录清空:mysql> DELETE FROM表名;

7、往表中插入记录:mysql> INSERT INTO表名 VALUES("hyq","M");

8、更新表中数据:mysql-> UPDATE表名 SET字段名1='a',字段名2='b' WHERE字段名3='c';

9、用文本方式将数据装入数据表中:mysql> load data local infile"d:/mysql.txt" into table表名;

10、导入.sql文件命令:mysql> USE数据库名;mysql> source d:/mysql.sql;

11、命令行修改root密码:mysql> update mysql.user set password=password('新密码') where user='root';mysql> flush privileges;

12.修改密码的三种方法:mysql>update user set password=password('123456') where user='joy_pen';mysql>flush privileges;mysql>set password for'joy_oen'=password('123456');mysql>grant usage on*.* to'joy_pen' identified by'123456';

1、创建数据库

命令:create database<数据库名>例如:建立一个名为xhkdb的数据库mysql> create database xhkdb;

2、显示所有的数据库

命令:show databases(注意:最后有个s)mysql> show databases;

3、删除数据库

命令:drop database<数据库名>例如:删除名为 xhkdb的数据库mysql> drop database xhkdb;

4、连接数据库

命令: use<数据库名>例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb;屏幕提示:Database changed

5、当前选择(连接)的数据库mysql> select database();

6、当前数据库包含的表信息:mysql> show tables;(注意:最后有个s)

三、表操作,操作之前应连接某个数据库

1、建表

命令:create table<表名>(<字段名1><类型1> [,..<字段名n><类型n>]);

mysql> create table MyClass(

> id int(4) not null primary key auto_increment,

> name char(20) not null,

> sex int(4) not null default''0'',

> degree double(16,2));

2、获取表结构

命令: desc表名,或者show columns from表名

mysql>DESCRIBE MyClass

mysql> desc MyClass;

mysql> show columns from MyClass;

3、删除表

命令:drop table<表名>

例如:删除表名为 MyClass的表 mysql> drop table MyClass;

4、插入数据

命令:insert into<表名> [(<字段名1>[,..<字段名n> ])] values(值1)[,(值n)]

例如,往表 MyClass中插入二条记录,这二条记录表示:编号为1的名为Tom的成绩为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为96.5.

mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99),(2,'Wang', 96.59);

5、查询表中的数据

1)、查询所有行

命令: select<字段1,字段2,...> from<表名> where<表达式>

例如:查看表 MyClass中所有数据 mysql> select* from MyClass;

2)、查询前几行数据

例如:查看表 MyClass中前2行数据

mysql> select* from MyClass order by id limit 0,2;

6、删除表中数据

命令:delete from表名 where表达式

例如:删除表 MyClass中编号为1的记录

mysql> delete from MyClass where id=1;

7、修改表中数据:update表名 set字段=新值,… where条件

mysql> update MyClass set name=''Mary'' where id=1;

8、在表中增加字段:

命令:alter table表名 add字段类型其他;

例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0

mysql> alter table MyClass add passtest int(4) default''0''

9、更改表名:

命令:rename table原表名 to新表名;

例如:在表MyClass名字更改为YouClass

mysql> rename table MyClass to YouClass;

更新字段内容

update表名 set字段名=新内容

update表名 set字段名= replace(字段名,''旧内容'',''新内容'');

好了,文章到这里就结束啦,如果本次分享的数据库sql基础知识和sql数据库基础知识问题对您有所帮助,还望关注下本站哦!

域名查询阿里云?阿里云的dns是多少数字音频主机 台式电脑的音频线插在主机后面那里啊