zoukankan      html  css  js  c++  java
  • 关于数据库的建立及增删改查

    我们打开这个软件首先要看看是否存在这个数据库可以使用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字段

     

  • 相关阅读:
    django--orm---006
    django--orm---005
    django--orm---004
    django--orm---003
    jmeter连接数据库
    django--view---001
    django--orm---002
    django--model--orm001-- 增删改查
    java并发编程
    jvm
  • 原文地址:https://www.cnblogs.com/wanghuaying/p/7845475.html
Copyright © 2011-2022 走看看