关于数据库的建立及增删改查

Posted 花伶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于数据库的建立及增删改查相关的知识,希望对你有一定的参考价值。

我们打开这个软件首先要看看是否存在这个数据库可以使用show databases:查看数据库是否存在如果不存在我们可以新建数据库用create database+数据库的名字;(新建数据库)use+数据库的名字;database changed(用这个数据库)。而后就可以建立表了。用select *from+表名查看表中的数据。

现在先说一下怎样建立一个基本的表格

Create table+表名(<列明><数据的类型>[列级的约束条件]

<列明><数据的类型>[列级的约束条件]

.....);

例如建立一个“课程”表course.

Create table course

(cno char(4)primary key,//列级完整性约束条件,cno是主码

Cname char(40)not null,//列级完整性约束性条件,cname不能取空值

Cpno char(4),

Ccredit smallint,

Foreing key (cpno)references course(cno)//表级完整性条件,cno是外码,被参照表是course,被参照列是cno

);

参照表与被参照表是同一个表

下面就来简单的介绍一下增删改查

 

1 .使用insert插入单行数据:语法:insert [into]<表名> [列名] values <列值>

例:insert into Students (姓名,性别,出生日期) values (‘邢金聪‘,‘‘,‘1990/6/15‘) 

 注意:如果省略表名,将依次插入所有列 

 2.使用insert,select语句将现有表中的 数据添加到已有的新表中        

语法:insert into <已有的新表> <列名> select <原表列名> from <原表名

例:insert into addressList (‘姓名‘,‘地址‘,‘电子邮件‘)selectname,address,email   from  Strdents      

 注意:查询得到的数据个数、顺序、数据类型等,必须与插入的项保持一致 

1.使用delete删除数据某些数据     语法:delete from <表名> [where <删除条件>]        

例:delete from awhere name=‘邢金聪(删除表a中列值为邢金聪的行) 

注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名  

 2.使用truncate table 删除整个表的数据        

语法:truncate table<表名

例:truncate table addressList 

注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表  

3删除基本表

 Drop table<表名>[restrict /cascade];restrict原本就有限制,约束之意若选择restrict,则该表的删除是有限制条件的。欲删除的基本表不能被其他表的约束条件所引用(如check,foreign key等约束),不能有视图,不能有触发器(trigger),不能有存储过程或函数等。如果存在这些依赖该表的对象,则此表将不能被删除。而cascade本身有串联的意思,若选择cascade,则该表的删除将没有限制条件。在删除基本表的同时,相关的依赖对象例如视图,都将被删除。

三、改  

1使用update更新修改数据             

语法:update <表名> set <列名=更新值> [where <更新条件>] 

 例:truncate table addressList 

注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用于有外建约束引用的表 

2这个用alter table语句修改基本表

Alter table<表名>

[add [column]<新列名><数据类型>[完整性约束]

[add<表级完整性约束>]

[drop[column]<列名>[cascade/restrict]]

[drop constraing<完整性约束>[restrict/cascade]]

[alter column<列名><数据类型>];

其中<表名>是要修改的基本表,add子句用于增加新列,新的列级完整性约束条件和新的表级完整性约束条件。Drop column子句用于删除表中的列,如果指定了cascade短语,则自动删除引用该列的其它对象比如视图;如果指定了restrict短语,则该列被其他对象引用,rdbms将拒绝删除该列。Drop  constraint子句用于删除指定的完整性约束条件。Alter column子句用于修改原有的列定义,包括修改列名和数据类型。我一下子把alter table 的语句放在一起,没有分增加或删除。

 

四、

 1.普通查询    

 语法:select <列名>

from <表名>

[where <查询条件表达试>]

[order by<排序的列名>[ascdesc]] ;

其中where子句表达式从from子句指定的基本表,视图或派生表中找出满足该条件的元组,再按select子句中的目标列表达式选出元组中的属性值形成的结果表

   1).查询所有数据行和列 

    例:select * from a 

    说明:查询a表中所有行和 

   2).查询部分行列--条件查询 

    例:select i,j,k  from  a   where f=5 

    说明:查询表af=5的所有行,并显示i,j,k3列 

   3).在查询中使用AS更改列名 

    例:select name as 姓名 from a where  gender=‘‘ 

    说明:查询a表中性别为男的所有行,显示name列,并将name列改名为(姓名)显示 

   4).查询空行 

    例:select name from a where e-mail is null 

    说明:查询表ae-mail为空的所有行,并显示name列;SQL语句中用is null或者is not null来判断是否为空行 

   5).在查询中使用常量 

    例:select name ‘廊坊‘ as 地址 from 

    说明:查询表a,显示name列,并添加地址列,其列值都为廊坊‘ 

   6).查询返回限制行数(关键字:top ) 

    例1:select top 6 name from a 

    说明:查询表a,显示列name的前6行,top为关键字(oracle 中没有top关键字用rownum替代)                          

select   *   from  a where   rownum<6   

   7).查询排序(关键字:order by , asc , desc 

    例:select name 

      from a 

      where grade>=60 分组查询 

      order by desc 

    说明:查询表中成绩大于等于60的所有行,并按降序显示name列;默认为ASC升序 .模糊查询 

   1).使用like进行模糊查询 

    注意:like运算符只用语字符串,多表 

    例:select * from a where name like ‘%‘ 

    说明:查询显示表a中,name字段第一个字为赵的记录 

   2).使用between在某个范围内进行查询 

    例:select * from a where age between 18 and 20 

    说明:查询显示表a中年龄在1820之间的记录 

    3).使用in在列举数值内进行查询(in后是多个的数据)         例:select name froma where address in (‘廊坊‘,‘石家庄‘,‘唐山‘) 

    说明:查询表aaddress值为廊坊或者石家庄或者唐山的记录,显示name字段 .分组查询 

   1).使用group by进行分组查询 

    例:select studentID as 学员编号, AVG(score) as 平均成绩  (注释:这里的score是列名

      from score (注释:这里的score是表名

      group by studentID            2).使用having子句进行分组筛选 

    例:select studentID as 学员编号, AVG     

      from score 

      group by studentID 

      having count(score)>1 

    说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件, .多表联接查询 

   1).内联接 

    where子句中指定联接条件 

    例:select a.name,b.mark 

      from a,b 

      where a.name=b.name 

    说明:查询表a和表bname字段相等的记录,并显示表a中的name字段和表b中的mark字段

 

以上是关于关于数据库的建立及增删改查的主要内容,如果未能解决你的问题,请参考以下文章

大数据系列之分布式数据库HBase-1.2.4+Zookeeper 安装及增删改查实践

php连接MySQL数据库及增删改查

mysql系列-安装及增删改查

创建数据库及增删改查基本操作

SOD框架的Model连接数据库及增删改查

java DMO及增删改查代码的自动生成