sql数据库入门?sql数据库的基本操作
尊敬的读者,sql数据库入门和sql数据库的基本操作是当前备受关注的话题,但许多人对其仍存在疑惑。在本篇文章中,我将为你提供清晰的解释和深入的分析,希望能满足你的求知欲望。
SQL实战新手入门:创建数据库
创建数据库
在可以向RDBMS提交SQL语句之前还有一些准备工作需要完成如果读者已经按照附录B中的操作指南以及本书配套网站( wrox或 agilitator)上补充的幻灯片完成了相应的安装操作那么应该已经具有一个(或多个)已经安装完成并且处于运行状态的RDBMS本书将使用到读者安装的RDBMS或者读者应该安装Microsoft Access或OpenOffice BASE请参考附录B其中详细列出了安装RDBMS的步骤另外请参考附录A中关于如何安装Library示例数据库的操作指南
对于下面的示例只需要少量修改就可以在多种RDBMS服务器上运行 Oracle IBM DB Microsoft SQL Server PostgreSQL和MySQL在MicrosoftAccess和OpenOffice BASE/HSQLDB中需要创建一个项目
数据库的概念从逻辑上可以定义为受某个程序管理的数据存储(例如现在已经很少使用的数据银行)当使用一个桌面型数据库(例如Microsoft Access)时 Access数据库就是一个文件对于新启动的每一个项目 Access都会创建这样一个数据库文件基于服务器的RDBMS也使用类似的概念但实现的细节要复杂许多幸运的是 SQL语言是一种声明性语言它隐藏了数据库实现上的复杂性 SQL语言只需要说明需要做什么而无须说明如何做
在使用数据库之前必须创建一个数据库本书中使用的数据库包含了笔者书柜上所有的书它可以跟踪图书名称 ISBN号作者价格等信息这些信息有助于弄清楚书柜中图书的情况
下面的语句将在RDBMS中创建一个名为LIBRARY的数据库(只要RDBMS是Microsoft SQLServer IBM DB PostgreSQL和MySQL即可对于Oracle数据库情况则略有不同它对于什么是数据库具有不同的表述请参考附录A中的详细介绍)
CREATE DATABASE library;
在RDBMS实例中如果具有足够的权限上面的语句将创建一个数据库它是容纳数据的一个逻辑结构同时还包含了所有的支撑结构文件和数据库操作所需的许多其他对象我们并不需要知道这些幕后的内容所有的空白都会被默认值填充这就是声明性语言的强大威力!
Oracle将采用如下所示的语法
CREATE USER library IDENTIFIED BY discover;
该语句中的USER粗略地等价于其他RDBMS中的DATABASE但在本书中将不会详细地讨论这两者之间的相似和差异
当然在一个产品级的RDBMS环境中创建一个具有足够功能的数据库还有大量的工作要做还可以使用许多选项并权衡利弊但是只需要执行上面的语句就可以创建一个可用的基本数据存储
在创建了一个数据库之后也可以使用SQL的DROP语句轻而易举地销毁它在使用DROP语句时不能销毁并不存在的对象(如果试图执行这样的操作 RDBMS将发出警告)
DROP DATABASE library;
在Oracle中删除操作就是删除一个USER
执行DROP语句之后 LIBRARY数据库就从服务器上消失了在Microsoft Access和OpenOfficeBASE中删除数据库的操作等价于删除对应的文件
由于各个RDBMS之间使用的术语存在着某些差别因此在不同的专有数据库之间数据库的概念也存在差异例如在SQL Server中定义为数据库的东西在某种程度上类似于Oracle中的SCHEMA和USER但在本书介绍的内容中这些差别并不是特别重要
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
lishixinzhi/Article/program/SQL/201311/16487sql入门新手教程是什么
在关系数据库实现过程中,第一步是建立关系模式,定义基本表的结构,即该关系模式是哪些属性组成的,每一属性的数据类型及数据可能的长度、是否允许为空值以及其它完整性约束条件。
定义基本表:
CREATE TABLE([列级完整性约束条件]
[,[列级完整性约束条件]]…
[,[列级完整性约束条件]]
[,表列级完整性约束条件]);
说明:
1、中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。
2、CREATE TABLE表示是SQL的关键字,指示本SQL语句的功能。
3、是所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。
多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。
4、每个属性由列名、数据类型、该列的多个完整性约束条件组成。其中列名一般为属性的英文名缩写,在Microsoft Access 2010中也可以采用中文,建议不要这样做,编程开发时不方便。
5、完整性约束条件,分为列级的完整性约束和表级的完整性约束,如果完整性约束条件涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由RDBMS自动检查该操作是否违背这些完整性约束,如果违背则RDBMS拒绝本次操作;
这样保持了数据库状态的正确性和完整性,不需要用户提供检查,提高了编程的效率,降低了编程难度。列级的完整性通常为主关键字的定义、是否允许为空。表级的完整性约束条件一般为外码定义。
数据操纵
数据操纵语言是完成数据操作的命令,一般分为两种类型的数据操纵。
1、数据检索(常称为查询):寻找所需的具体数据。
2、数据修改:插入、删除和更新数据。
数据操纵语言一般由 INSERT(插入)、 DELETE(删除)、 UPDATE(更新)、 SELECT(检索,又称查询)等组成。由于 SELECT经常使用,所以一般将它称为查询(检索)语言并单独出现。
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数据库的基本操作的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。