精华内容
下载资源
问答
  • l数据库基础前四章总结(增删改查基础命令语句的的使用) 我是 MySQL 初学者,通过对前四章基础知识学习,我认为其前四章精华所在可以用四个字加以概括---增、删、改、查 常用最基本的语句(下面是最简单...

    l数据库基础前四章总结(增删改查基础命令语句的的使用)

    我是 MySQL 初学者,通过对前四章的基础知识学习,我认为其前四章的精华所在可以用四个字加以概括---增、删、改、查

    常用最基本的语句(下面是最简单的方式,且在My SQL中不区分大小写,其中可省略部分已经省略,如需更多读者可自行查寻MySQl帮助文档)【注:以下语句中xs ,kc,xs_kc 表参照My SQL附录 】
    一、增(创建,添加)

    创建
    1、创建数据库
       create database DB;   //创建一个名为DB的数据库,其中database 为建库关键字

    2、创建表
       create table DB_b (    
    字段一 int  not null primary key,  
                       字段二 varchar(8)  null
                       );
      //创建表 名为DB_b{说明:数据库及表名可随意命名,符合命名规则既可}, 其中table 为建表关键字
      // 字段一 :为字段名 ;int :为该字段数据类型 ; primary key :声明该字段为主键(当该列声明为主键时,其默认值就一定不能为空)
      //字段二 :为字段名 ;varchar(8) :为该字段数据类型,为char类型但是加了var 说明该字段值长度为可变的,(8)为默认长度
    3、创建视图
      (1) use xscj
            create view shitu
            as
            select *
            from xs;
      // use xscj 命令转到xscj 数据库
      // create view shitu   创建名为shitu 的视图 其中 view 为建视图关键字
    // * 是所有信息的意思,就是将xs表中的所有信息作为视图信息
            //xs 为xscj数据库中的表 为视图来源
    (2)
    create view shitu1(姓名,性别)
     as
     select 姓名,性别
     from xs
     where 学号 = '081101';
        // shitu1(姓名,性别) 中的 性别、姓名 为视图 属性
      //  select 姓名,性别  为将要从xs表中获取的属性
      // where 为获取条件
    添加
    1、添加表属性
       alter  table  xs
    add 年龄 int default 18 ;
    //其中alter为修改的关键字,但是有了add 后 就为添加属性了
    2、添加表数据
      insert xs(学号,姓名,出生日期) values ('081199','张三','1990-09-08');
        //insert 后为表名 表名后的可以加括号,也可以什么都不加,当不加时,为默认添加所有内容,当加了括号时,括号里的指定的是要添加的属性,记住values 后的是属性值,不管前面的表名加不加括号指定属性其中属性值都要和前面属性名要一一对应
    添加表数据和添加表属性使用的关键字是不同的
    3、添加视图数据
    insert shitu values ('081125','李牧','计算机','1990-09-08',50,null,null);
    // 向视图添加数据时,和向表中添加数据的语法相同
    // 值得注意的是当通过对视图做出相应操作,也就是对该视图的基表做出了相应的修改(满足更新条件的前提下)

    二、删
    1、删除数据库
       drop database xs;
    2、删除表(和表属性)
       drop table xs;
    // 删除表
    alter table xs
    drop 姓名;
    //删除表属性
    3、删除表数据
       delete from xs
    where 姓名 = '王燕';
    // 只删除符合where条件的数据
    4、删除视图(和属性)
       drop  view  shitu;
    5、删除视图数据
      delete from shitu
    where 姓名 ='李牧';
    //delete

    三、改
    1、修改数据库
        alter database DB
    character set gb2312;
    // alter 为修改关键字
    //将DB数据库的字符集编码改为gb2312;
    2、修改表属性
       alter table db_b
     modify 字段一 char
    change  旧列名  新列名 列属性;
       // 将表db_b 中属性字段一的数据类型改为char类型
    // modify 为改字段属性专用关键字
    //具体该法:在modify 关键字后 重写改后内容即可,没重写的就依用原来的
    3、修改表内数据
    update xs
     set 总学分 = 80
     where 学号 = '081101';
    //update 为修改表数据关键字 其后面跟的是将要被修改的表名
    // set 为修改关键字 其后面 是修改的内容,当修改内容为多条时,每条之间用逗号隔开
    // where 限定修改条件 当有where 限定时,只修改符合条件的记录,没有where 条件限定 修改的是整个表的该属性值
     修改表属性和修改表数据的关键字是不同的
    4、修改表名(两种方法,记住即可)
    alter table xs
     rename sx;
    // alter table xs 指向将要被修改的表
    // rename 为修改表明关键字 其后跟新表名

    rename table kc to ck;
    // to 前 是原来表名  后是新表名
    5、修改视图数据
           update shitu
    set 专业名 = '3G'
    where 学号 ='081101';
    //如何修改表数据就如何修改视图数据,这里不再重复
    四、查
    单表查询:数据源只有一个表
    1选择列
    select * from xs;
    select 学号,姓名 from xs;
    select 学号 as sno,姓名  as name  from xs;
    select 学号,总学分*1.2 as 新学分 from xs;

    select 姓名,case
    when 性别=1 then '男'
    when 性别=0 then '女'
    end  as 性别,专业名
    from xs;

    2  选择行

    where条件
    1)比较运算符:= >  >=   <   <=  <>   !=  <=>

    2) 逻辑运算符    and   &&     or  ||  not  !

    查找计算机系的男学生的信息
    select * from xs  where  专业名='计算机' and  性别=1

    3)模式匹配:like    %   _
    select * from xs where 姓名 like '王%';         ESCAPE 转义字符 关键字    


    4)范围比较
    between  :成绩 between 80 and 90     (成绩 >=80  and 成绩<=90)
    not  between   :  select * from xs_kc  where  成绩  not between  80 and 90
     

    查看产地是广州,上海,北京的产品信息
    select * from product
    where 产地='广州' or 产地='上海' or  产地='北京';
    in:     产地  in ('广州','上海','北京')
    查看关键字与列表中的任何一个值匹配,就返回true

    not in:      产地 not in ('广州','上海','北京')


    5)空值比较
    is  null
    is not null

    select * from xs where 备注 is not null;


    6)去掉重复的行:distinct

    select  distinct 专业名 from xs;

     

    3 对查询结果排序
    order by 子句:
    升序:asc  (默认)
    降序:desc
    如果是按多个字段排序,先按第一个字段排,当第一个字段的值相同时,在按第二个排。


    4 limit子句:限制结果集中的行数

    一般limit子句放在select语句的最后
    limit 5   :表示返回结果集的前面5条记录
    limit 3,5:表示返回从第4行开始的5条记录

     

    4 分组:分类汇总
    聚合函数:
    count(*):统计记录的条数 
    count(字段名):统计字段中有值的记录个数。(不考虑null)
    count(distinct 字段名): 去掉重复值后在计算有值的个数

    max(字段名):计算某一列最大值
    min(字段名):计算某一列最小值

    sum(字段名):求和
    avg(字段名):求平均值


    统计xs表中的记录数:select count(*) from xs

    查询选修了课程的学生人数
    select count(distinct 学号) as 人数 from xs_kc;

    查询选修101课程的学生的最高分

    select max(成绩) as 最高分 from xs_kc
    where 课程号=101;


    分组:group by 字段名:
    根据字段的值对记录进行分组

    group  by 性别

    select 性别,count(*) as 人数 from xs
    group by 性别;

    分组后可以看哪些字段:一般是分组的字段,和使用聚合函数的列。

    group by 字段名1,字段名2

    select 专业名,性别,count(*) as 人数
    from xs
    group by 专业名,性别
    with rollup; //汇总

     

    查询平均分是大于77的课程号,和相应的平均分。

    select 课程号,avg(成绩) as 平均分
    from xs_kc
    group by 课程号
    having avg(成绩)>77;  //  分组后筛选

    使用分组后在进行挑选   having关键字

    having 与where的区别:where是对原始记录进行挑选,跟在from后。
    having:对分组后的记录进行挑选,跟在group by 后。

    select 学号  from xs_kc
    where 成绩>=80
    group by 学号
    having count(*)>2

    查询每个学生的学号和选课数
    select 学号,count(*) as 选课数
    from xs_kc
    group by 学号;


    查询选修了2门课程以上的学生学号。

    select 学号
    from xs_kc
    group by 学号
    having count(*)>2;


    查询每门课程号及其选课人数。

    select  课程号,count(*) as 人数
    from xs_kc
    group by 课程号;
    多表查询:数据源是多个表

    要求:查询每个学生的姓名,所在系,课程名,成绩:3个表

    要求:查询每个学生的姓名,所在系,课程号,成绩:2个表

    做多表连接:要找到连接的条件,2个表的公共字段(属性)

    两种:
    1.全连接:等值连接
    select  姓名,所在系,课程号,成绩
    from xs,xs_kc
    where    xs.学号=xs_kc.学号;  (等值连接)

    要求:查询每个学生的学号,姓名,课程号,成绩:
    1.考虑数据源  :xs:学号  姓名
                 xs_kc:课程号  成绩
     2.连接条件:两表的学号相等   xs.学号=xs_kc.学号

    当查看的列在多个表中都存在的话,必须在字段名前加上表名进行限制。
    select xs.学号,姓名,课程号,成绩
    from xs,xs_kc
    where xs.学号=xs_kc.学号;

     

    要求:查询每个学生的姓名,专业名,课程名,成绩
    数据源:xs:姓名,专业名              kc:课程名     xs_kc  :成绩
    连接条件:xs.学号=xs_kc.学号   and   kc.课程号=xs_kc.课程号

    select 姓名,专业名,课程名,成绩
    from xs,kc,xs_kc
    where xs.学号=xs_kc.学号 and kc.课程号=xs_kc.课程号;

    select 姓名,专业名,课程名,成绩
    from xs,kc,xs_kc
    where xs.学号=xs_kc.学号 and kc.课程号=xs_kc.课程号
    and 课程名='计算机基础' and 成绩>=80
    order by 成绩 desc;


    第二种方式:join连接
    内连接:inner join:满足连接条件的记录出现在结果中。
    外连接:左外连接:left [outer] join 左边表的所有记录和右边表满足条件的记录
            右外连接: right  [outer] join右边表的所有记录和左边表满足条件的记录


    内连接:  from 表名1  inner join 表名2 on 条件

    要求:查看学生的学号,姓名,课程号,成绩。

    select xs.学号,姓名,课程号,成绩
    from xs inner join xs_kc
    on xs.学号=xs_kc.学号;


    select xs.学号,姓名,课程号,成绩
    from xs,xs_kc
    where xs.学号=xs_kc.学号;


    要求:查看课程号是101的学生的学号,姓名,课程号,成绩。

    select xs.学号,姓名,课程号,成绩
    from xs inner join xs_kc
    on xs.学号=xs_kc.学号
    where 课程号='101';

    要求:查询每个学生的姓名,专业名,课程名,成绩

    select 姓名,专业名,课程名,成绩
    from xs inner join xs_kc on xs.学号=xs_kc.学号
    inner join kc on xs_kc.课程号=kc.课程号;

    select 姓名,专业名,课程名,成绩
    from xs inner join xs_kc on xs.学号=xs_kc.学号
    inner join kc on xs_kc.课程号=kc.课程号
    where 课程名='计算机基础' and 成绩>=80;

    如果是三张表:from  表1 inner join 表2 on 条件1
                                    inner join 表3 on 条件2

    from  表1,表2,表3
    where 条件1   and  条件2


    自连接:
    雇员表(a):编号,姓名,性别,领导编号
                                       1            aa        1           
                                      2          bb          0           1
                                       3          cc           1            1

    雇员表(b):编号,姓名,性别,领导编号
                                      1            aa        1           
                                      2          bb          0           1
                                      3          cc           1            1

     

    查询每个雇员的名字和他的领导姓名  
    select a.姓名,  b.姓名 as 领导姓名
    from 雇员表 as a   join 雇员表 as  b
    on     a.领导编号=b.编号

    给表加别名:
    from  表名 as 别名
    注意:如果给表加了别名,以后的使用必须用别名,不能再使用原表名


    select s.学号,姓名,专业名,课程名,成绩
    from xs as s  inner join xs_kc  as  sc  on s.学号=sc.学号
    inner join kc as c on sc.课程号=c.课程号
    where 课程名='计算机基础' and 成绩>=80;


    将计算机专业的学生的“计算机基础”课程成绩按降序排列。
    查询结果包括 姓名,课程名,成绩

    查询每门课程各专业的平均成绩。每门课程的总平均成绩和
    所有课程的总平均成绩

    关键字总结
    在MySQL 中,不区分大小写字母
    总体查看
    Show
       | databases;  //查看所有数据库名字
       |dabbles;    // 查看所在数据库的所有表名;
       |Columns from 表名;// 查看所指向表 字段属性

    Create
       | database DB; //创建数据库 DB;
       | table TB;   //创建表 TB;
       | view VW;  // 创建视图 VW;

    Alter
       | database DB; //修改数据库 DB;
       | table TB;   //修改表 TB;
       | view VW;  // 修改视图 VW;

    Drop
     | database DB; //s删除数据库 DB;
       | table TB;   //删除表 TB;
       | view VW;  // 删除视图 VW;

    Delete
       |from 表名;
       |from 视图名;
        也是删除,但其操作对象是数据
     
    Select
     该关键字应用灵活,但在应用时 要用 from 指向数据源

    展开全文
  • 首先在布局文件添加四个按键分别是增删改查四种方法,在主窗口类实现四种方法: 第一个点击按钮增加一条记录 第二个点击按钮删除一条记录 第三个点击按钮更新一条记录 第四个点击按钮查询记录 本篇博文需要...

    本篇博文是在上一篇新建了数据库的基础上编写的,上一篇博文链接:https://blog.csdn.net/liyunfu233/article/details/84193368

    首先在布局文件中添加四个按键分别是增删改查四种方法,在主窗口类中实现四种方法:
    第一个点击按钮增加一条记录
    在这里插入图片描述
    第二个点击按钮删除一条记录
    在这里插入图片描述

    第三个点击按钮更新一条记录

    在这里插入图片描述

    第四个点击按钮查询记录
    在这里插入图片描述

    本篇博文需要将上一篇博文创建的数据库字段增加一个phone字段。
    在这里插入图片描述
    cursor为行的集合,即如果查询到数据,cursor就不为空,moveTonext是移动到下一行。

    所有代码如下:
    布局代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            tools:context=".MainActivity">
    
        <Button
                android:onClick="click1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="add"/>
        <Button
                android:onClick="click2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="delete"/>
        <Button
                android:onClick="click3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="update"/>
        <Button
                android:onClick="click4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="find"/>
    
    </LinearLayout>
    

    myopenhelper类代码:

    package com.example.a15114.createsqlitedemo;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    import java.sql.ResultSet;
    
    public class MyOpenHelper extends SQLiteOpenHelper {
        /**
         *
         *  context 上下文
         *   name  数据库的名字
         *  factory   目的创建cursor对象
         *  version    数据库的版本  从1开始
         */
        public MyOpenHelper(Context context) {
            super(context, "itheima.db", null, 4);
        }
        /**
         * 当数据库第一次创建的时候调用
         * 那么这个方法特别适合做表结构的初始化 创建表就是写sql语句
         *
         */
        @Override
        public void onCreate(SQLiteDatabase db) {
            //id 一般以_id
            db.execSQL("create table info(_id integer primary key autoincrement,name varchar(20),phone varchar(20))");
        }
        /**
         *
         * 当数据库版本升级的时候调用
         *
         * 这个方法适合做 表结构的更新
         */
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
            System.out.println("升级");
            db.execSQL("alter table info add phone varchar(20)");
        }
    }
    
    

    主窗口类代码:

    package com.example.a15114.createsqlitedemo;
    
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    
    public class MainActivity extends AppCompatActivity {
        MyOpenHelper myOpenHelper;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            myOpenHelper=new MyOpenHelper(getApplicationContext());
            //打开或者创建数据库  如果是第一次就是创建
            //SQLiteDatabase sqLiteDatabase=myOpenHelper.getWritableDatabase();
    
            //打开或创建数据库 如果是第一次就是创建  如果磁盘满了只返回一个可读的
            SQLiteDatabase sqLiteDatabase=myOpenHelper.getReadableDatabase();
    
    
        }
    
        //点击按钮增加一条记录
        public void click1(View view) {
            //[1]获取数据库对象
            SQLiteDatabase db=myOpenHelper.getReadableDatabase();
            //[2]执行增加一条的sql语句
            db.execSQL("insert into info(name,phone) values(?,?)",new Object[]{"张三","138888"});
            //[3]数据库用完需要关闭
            db.close();
        }
    
    
        //删除
        public void click2(View view) {
    
            SQLiteDatabase db=myOpenHelper.getReadableDatabase();
    
            db.execSQL("delete from info where name=?",new Object[]{"张三"});
    
            db.close();
        }
    
        //更新
        public void click3(View view) {
    
            SQLiteDatabase db=myOpenHelper.getReadableDatabase();
    
            db.execSQL("update info set phone=? where name=?",new Object[]{"139999"});
    
            db.close();
    
        }
    
        //查找
        public void click4(View view) {
    
            SQLiteDatabase db=myOpenHelper.getReadableDatabase();
    
            Cursor cursor=db.rawQuery("select * from info",null);
            if (cursor!=null&&cursor.getCount()>0){
                while (cursor.moveToNext()){
                    //columindex代表列的索引
                    String name=cursor.getString(1);
                    String phone=cursor.getString(2);
                    System.out.println("name:"+name+"---------"+phone);
                }
            }
        }
    }
    
    
    展开全文
  • 文章目录一、通过代码创建表和添加数据二、删除数据库三、创建数据库时候设置一些参数、在数据库中创建一表五、通过代码删除表六、向表中插入一条记录七、查询这张表 一、通过代码创建表和添加数据 点击新建...

    一、通过代码创建表和添加数据

    点击新建查询生成2
    在这里插入图片描述
    输入命令

    create database mydatabasenoe;
    

    错误: 如果出现消息 1807,级别 16,状态 3,第 1 行 无法获得数据库 ‘model’ 上的排他锁。请稍后重试
    ==解决:==输入一下命令,运行之后,再执行刚才那条语句。

    declare @sql varchar(100) 
    while 1=1 
    begin 
    select top 1 @sql = 'kill '+cast(spid as varchar(3)) 
    from master..sysprocesses 
    where spid > 50 and spid <> @@spid 
    if @@rowcount = 0 
    break 
    exec(@sql) 
    end
    

    创建数据库成功

    在这里插入图片描述

    二、删除数据库

    drop database mydatabasenoe; 
    

    在这里插入图片描述

    三、创建数据库的时候设置一些参数

    create database mydatabaseone
    on primary# 
    (
      -- 配置主数据文件的选项
      name = 'mydatabaseone', -- 主数据文件的逻辑名称
      filename = 'D:\mydatabaseone.mdf',-- 主数据文件的实际保存路径
      size = 5MB, -- 初始控件是MB
      maxsize = 150MB, --最大可使用空间是MB
      filegrowth = 20% --每次增长空间为%
    )
    log on
    (
       --配置日志文件的选项
       name = 'mydatabaseone_log', --日志文件的逻辑名称
       filename ='D:\mydatabaseone1_log.ldf', -- 日志文件的实际保存路径
       size = 5MB, --日志文件的初始大小
       filegrowth = 5MB  -- 文件增长的大小
    )
    

    四、在数据库中创建一个表

    -- 在数据库中创建一个表
    --将代码环境切换到mydatabaseone 下
    use mydatabaseone
    create table departments
    (
       autoID int identity(1,1) primary key,--自动编号,主键
       departmentName nvarchar(50) not null
    )
    

    五、通过代码删除表

    --通过代码删除表
    use mydatabaseone
    drop table departments
    

    六、向表中插入一条记录

    -- 向部门表中插入一条记录
    -- insert into 表名(列,列,列)values(值,值,值)
    --1.自动编号列,默认就会自动增长
    --(默认情况下也不能向自动编号列插入值)
    insert into departments(departmentName) values('学习部')
    

    插入表的时候可以省略列名

    -- 可以省略列名(值的顺序不能改变)
    insert into departments
     values('资助部')
    

    在这里插入图片描述
    向自动编号列插入值

    -- 向自动编号列插入值
    -- 启动某个表的“自动编号列”手动插入值的功能
    set identity_insert departments on -- 可以自动插入
    insert into departments(autoID,departmentName)
    values(100,'组织部')
    set identity_insert departments OFF--不可以自动插入
    

    在这里插入图片描述

    在sql 语句中直接写的字符串,如果带中文,前面带上n防止乱码

    insert into departments
     values(N'资助部')
    

    七、查询这张表

    -- 查询这张表
    select * from departments
    

    在这里插入图片描述

    今天6点半起床,感觉 最近真的是很忙,好多好多的事要去做,但是呢,又都是不好做,一步一步来吧,时间是不会停止的,到时候总会有办法的。

    展开全文
  • 我是 MySQL 初学者,通过对前四章基础知识学习,我认为其前四章精华所在可以用四个字加以概括--- 常用最基本的语句(下面是最简单方式,且在My SQL不区分大小写,其中可省略部分已经省略,如...

     

    我是 MySQL 初学者,通过对前四章的基础知识学习,我认为其前四章的精华所在可以用四个字加以概括---增、删、改、查

    常用最基本的语句(下面是最简单的方式,且在My SQL中不区分大小写,其中可省略部分已经省略,如需更多读者可自行查寻MySQl帮助文档)【注:以下语句中xs ,kc,xs_kc 表参照My SQL附录 】
    一、增(创建,添加)

    创建
    1、创建数据库
       create database DB;   //创建一个名为DB的数据库,其中database 为建库关键字

    2、创建表
       create table DB_b (    
    字段一 int  not null primary key,  
                       字段二 varchar(8)  null
                       );
      //创建表 名为DB_b{说明:数据库及表名可随意命名,符合命名规则既可}, 其中table 为建表关键字
      // 字段一 :为字段名 ;int :为该字段数据类型 ; primary key :声明该字段为主键(当该列声明为主键时,其默认值就一定不能为空)
      //字段二 :为字段名 ;varchar(8) :为该字段数据类型,为char类型但是加了var 说明该字段值长度为可变的,(8)为默认长度
    3、创建视图
      (1) use xscj
            create view shitu
            as
            select *
            from xs;
      // use xscj 命令转到xscj 数据库
      // create view shitu   创建名为shitu 的视图 其中 view 为建视图关键字
    // * 是所有信息的意思,就是将xs表中的所有信息作为视图信息
            //xs 为xscj数据库中的表 为视图来源
    (2)
    create view shitu1(姓名,性别)
     as
     select 姓名,性别
     from xs
     where 学号 = '081101';
        // shitu1(姓名,性别) 中的 性别、姓名 为视图 属性
      //  select 姓名,性别  为将要从xs表中获取的属性
      // where 为获取条件
    添加
    1、添加表属性
       alter  table  xs
    add 年龄 int default 18 ;
    //其中alter为修改的关键字,但是有了add 后 就为添加属性了
    2、添加表数据
      insert xs(学号,姓名,出生日期) values ('081199','张三','1990-09-08');
        //insert 后为表名 表名后的可以加括号,也可以什么都不加,当不加时,为默认添加所有内容,当加了括号时,括号里的指定的是要添加的属性,记住values 后的是属性值,不管前面的表名加不加括号指定属性其中属性值都要和前面属性名要一一对应
    添加表数据和添加表属性使用的关键字是不同的
    3、添加视图数据
    insert shitu values ('081125','李牧','计算机','1990-09-08',50,null,null);
    // 向视图添加数据时,和向表中添加数据的语法相同
    // 值得注意的是当通过对视图做出相应操作,也就是对该视图的基表做出了相应的修改(满足更新条件的前提下)

    二、删
    1、删除数据库
       drop database xs;
    2、删除表(和表属性)
       drop table xs;
    // 删除表
    alter table xs
    drop 姓名;
    //删除表属性
    3、删除表数据
       delete from xs
    where 姓名 = '王燕';
    // 只删除符合where条件的数据
    4、删除视图(和属性)
       drop  view  shitu;
    5、删除视图数据
      delete from shitu
    where 姓名 ='李牧';
    //delete

    三、改
    1、修改数据库
        alter database DB
    character set gb2312;
    // alter 为修改关键字
    //将DB数据库的字符集编码改为gb2312;
    2、修改表属性
       alter table db_b
     modify 字段一 char
    change  旧列名  新列名 列属性;
       // 将表db_b 中属性字段一的数据类型改为char类型
    // modify 为改字段属性专用关键字
    //具体该法:在modify 关键字后 重写改后内容即可,没重写的就依用原来的
    3、修改表内数据
    update xs
     set 总学分 = 80
     where 学号 = '081101';
    //update 为修改表数据关键字 其后面跟的是将要被修改的表名
    // set 为修改关键字 其后面 是修改的内容,当修改内容为多条时,每条之间用逗号隔开
    // where 限定修改条件 当有where 限定时,只修改符合条件的记录,没有where 条件限定 修改的是整个表的该属性值
     修改表属性和修改表数据的关键字是不同的
    4、修改表名(两种方法,记住即可)
    alter table xs
     rename sx;
    // alter table xs 指向将要被修改的表
    // rename 为修改表明关键字 其后跟新表名

    rename table kc to ck;
    // to 前 是原来表名  后是新表名
    5、修改视图数据
           update shitu
    set 专业名 = '3G'
    where 学号 ='081101';
    //如何修改表数据就如何修改视图数据,这里不再重复
    四、查
    单表查询:数据源只有一个表
    1选择列
    select * from xs;
    select 学号,姓名 from xs;
    select 学号 as sno,姓名  as name  from xs;
    select 学号,总学分*1.2 as 新学分 from xs;

    select 姓名,case
    when 性别=1 then '男'
    when 性别=0 then '女'
    end  as 性别,专业名
    from xs;

    2  选择行

    where条件
    1)比较运算符:= >  >=   <   <=  <>   !=  <=>

    2) 逻辑运算符    and   &&     or  ||  not  !

    查找计算机系的男学生的信息
    select * from xs  where  专业名='计算机' and  性别=1

    3)模式匹配:like    %   _
    select * from xs where 姓名 like '王%';         ESCAPE 转义字符 关键字    


    4)范围比较
    between  :成绩 between 80 and 90     (成绩 >=80  and 成绩<=90)
    not  between   :  select * from xs_kc  where  成绩  not between  80 and 90
     

    查看产地是广州,上海,北京的产品信息
    select * from product
    where 产地='广州' or 产地='上海' or  产地='北京';
    in:     产地  in ('广州','上海','北京')
    查看关键字与列表中的任何一个值匹配,就返回true

    not in:      产地 not in ('广州','上海','北京')


    5)空值比较
    is  null
    is not null

    select * from xs where 备注 is not null;


    6)去掉重复的行:distinct

    select  distinct 专业名 from xs;

     

    3 对查询结果排序
    order by 子句:
    升序:asc  (默认)
    降序:desc
    如果是按多个字段排序,先按第一个字段排,当第一个字段的值相同时,在按第二个排。


    4 limit子句:限制结果集中的行数

    一般limit子句放在select语句的最后
    limit 5   :表示返回结果集的前面5条记录
    limit 3,5:表示返回从第4行开始的5条记录

     

    4 分组:分类汇总
    聚合函数:
    count(*):统计记录的条数 
    count(字段名):统计字段中有值的记录个数。(不考虑null)
    count(distinct 字段名): 去掉重复值后在计算有值的个数

    max(字段名):计算某一列最大值
    min(字段名):计算某一列最小值

    sum(字段名):求和
    avg(字段名):求平均值


    统计xs表中的记录数:select count(*) from xs

    查询选修了课程的学生人数
    select count(distinct 学号) as 人数 from xs_kc;

    查询选修101课程的学生的最高分

    select max(成绩) as 最高分 from xs_kc
    where 课程号=101;


    分组:group by 字段名:
    根据字段的值对记录进行分组

    group  by 性别

    select 性别,count(*) as 人数 from xs
    group by 性别;

    分组后可以看哪些字段:一般是分组的字段,和使用聚合函数的列。

    group by 字段名1,字段名2

    select 专业名,性别,count(*) as 人数
    from xs
    group by 专业名,性别
    with rollup; //汇总

     

    查询平均分是大于77的课程号,和相应的平均分。

    select 课程号,avg(成绩) as 平均分
    from xs_kc
    group by 课程号
    having avg(成绩)>77;  //  分组后筛选

    使用分组后在进行挑选   having关键字

    having 与where的区别:where是对原始记录进行挑选,跟在from后。
    having:对分组后的记录进行挑选,跟在group by 后。

    select 学号  from xs_kc
    where 成绩>=80
    group by 学号
    having count(*)>2

    查询每个学生的学号和选课数
    select 学号,count(*) as 选课数
    from xs_kc
    group by 学号;


    查询选修了2门课程以上的学生学号。

    select 学号
    from xs_kc
    group by 学号
    having count(*)>2;


    查询每门课程号及其选课人数。

    select  课程号,count(*) as 人数
    from xs_kc
    group by 课程号;
    多表查询:数据源是多个表

    要求:查询每个学生的姓名,所在系,课程名,成绩:3个表

    要求:查询每个学生的姓名,所在系,课程号,成绩:2个表

    做多表连接:要找到连接的条件,2个表的公共字段(属性)

    两种:
    1.全连接:等值连接
    select  姓名,所在系,课程号,成绩
    from xs,xs_kc
    where    xs.学号=xs_kc.学号;  (等值连接)

    要求:查询每个学生的学号,姓名,课程号,成绩:
    1.考虑数据源  :xs:学号  姓名
                 xs_kc:课程号  成绩
     2.连接条件:两表的学号相等   xs.学号=xs_kc.学号

    当查看的列在多个表中都存在的话,必须在字段名前加上表名进行限制。
    select xs.学号,姓名,课程号,成绩
    from xs,xs_kc
    where xs.学号=xs_kc.学号;

     

    要求:查询每个学生的姓名,专业名,课程名,成绩
    数据源:xs:姓名,专业名              kc:课程名     xs_kc  :成绩
    连接条件:xs.学号=xs_kc.学号   and   kc.课程号=xs_kc.课程号

    select 姓名,专业名,课程名,成绩
    from xs,kc,xs_kc
    where xs.学号=xs_kc.学号 and kc.课程号=xs_kc.课程号;

    select 姓名,专业名,课程名,成绩
    from xs,kc,xs_kc
    where xs.学号=xs_kc.学号 and kc.课程号=xs_kc.课程号
    and 课程名='计算机基础' and 成绩>=80
    order by 成绩 desc;


    第二种方式:join连接
    内连接:inner join:满足连接条件的记录出现在结果中。
    外连接:左外连接:left [outer] join 左边表的所有记录和右边表满足条件的记录
            右外连接: right  [outer] join右边表的所有记录和左边表满足条件的记录


    内连接:  from 表名1  inner join 表名2 on 条件

    要求:查看学生的学号,姓名,课程号,成绩。

    select xs.学号,姓名,课程号,成绩
    from xs inner join xs_kc
    on xs.学号=xs_kc.学号;


    select xs.学号,姓名,课程号,成绩
    from xs,xs_kc
    where xs.学号=xs_kc.学号;


    要求:查看课程号是101的学生的学号,姓名,课程号,成绩。

    select xs.学号,姓名,课程号,成绩
    from xs inner join xs_kc
    on xs.学号=xs_kc.学号
    where 课程号='101';

    要求:查询每个学生的姓名,专业名,课程名,成绩

    select 姓名,专业名,课程名,成绩
    from xs inner join xs_kc on xs.学号=xs_kc.学号
    inner join kc on xs_kc.课程号=kc.课程号;

    select 姓名,专业名,课程名,成绩
    from xs inner join xs_kc on xs.学号=xs_kc.学号
    inner join kc on xs_kc.课程号=kc.课程号
    where 课程名='计算机基础' and 成绩>=80;

    如果是三张表:from  表1 inner join 表2 on 条件1
                                    inner join 表3 on 条件2

    from  表1,表2,表3
    where 条件1   and  条件2


    自连接:
    雇员表(a):编号,姓名,性别,领导编号
                                       1            aa        1           
                                      2          bb          0           1
                                       3          cc           1            1

    雇员表(b):编号,姓名,性别,领导编号
                                      1            aa        1           
                                      2          bb          0           1
                                      3          cc           1            1

     

    查询每个雇员的名字和他的领导姓名  
    select a.姓名,  b.姓名 as 领导姓名
    from 雇员表 as a   join 雇员表 as  b
    on     a.领导编号=b.编号

    给表加别名:
    from  表名 as 别名
    注意:如果给表加了别名,以后的使用必须用别名,不能再使用原表名


    select s.学号,姓名,专业名,课程名,成绩
    from xs as s  inner join xs_kc  as  sc  on s.学号=sc.学号
    inner join kc as c on sc.课程号=c.课程号
    where 课程名='计算机基础' and 成绩>=80;


    将计算机专业的学生的“计算机基础”课程成绩按降序排列。
    查询结果包括 姓名,课程名,成绩

    查询每门课程各专业的平均成绩。每门课程的总平均成绩和
    所有课程的总平均成绩

    关键字总结
    在MySQL 中,不区分大小写字母
    总体查看
    Show
       | databases;  //查看所有数据库名字
       |dabbles;    // 查看所在数据库的所有表名;
       |Columns from 表名;// 查看所指向表 字段属性

    Create
       | database DB; //创建数据库 DB;
       | table TB;   //创建表 TB;
       | view VW;  // 创建视图 VW;

    Alter
       | database DB; //修改数据库 DB;
       | table TB;   //修改表 TB;
       | view VW;  // 修改视图 VW;

    Drop
     | database DB; //s删除数据库 DB;
       | table TB;   //删除表 TB;
       | view VW;  // 删除视图 VW;

    Delete
       |from 表名;
       |from 视图名;
        也是删除,但其操作对象是数据
     
    Select
     该关键字应用灵活,但在应用时 要用 from 指向数据源

    展开全文
  • 这一篇,主要介绍怎样在java使用SQL语句,对数据库进行“增删改查“这四个操作,也算是对MySQL数据库的深入学习。 SQL语法 常用功能类(JDBCUtil) 专门用来做“增删改查类(AddDeleteUpdateShow) ...
  •  三、数据库增删改查  、MySQL添加注释 1️⃣ 系统数据库介绍  1、初识sql语句  有了mysql这个数据库软件,就可以将程序员从对数据管理解脱出来,专注于对程序逻辑编写  mysql服务端软件即mysqld...
  • Mybatis中的增删改查

    2018-09-08 11:07:00
    相比jdbc mybatis在操作...在Mapper中分别有着 select,insert, update,delete的这四个标签分别对应着SQL语句中的查询映射,添加映射,修改映射,删除映射. <select id=""></select> <insert id=""...
  • 鉴于前两又一总结前两个的sql语句 本次代码大量用啦《数据库系统概论》ps(第版)例题: /*创建一名为mydatabase的数据库*/ Create database mydatabase On (Name=mydatabase, Filename='d:\数据库\...
  • 【重构】C#——增删改查语句汇总

    热门讨论 2018-09-25 14:30:03
    每一种数据操作都有固定格式,下面就对增删改查种操作格式进行一总结,每一种都举栗子来说明。 内容 1、插入 //插入记录到onwork表 public DataTable Insert(Entity.OnWorkInfo o...
  • 1.本文使用iOS 对sqlite基本操作进行封装,可以自动生成拼接SQL语句,自动绑定数据并执行,简化了数据库的四项主要操作,减少代码量。 首先看下使用样例,新建一单视图工程,引入所需头文件"WDGDatabaseTool.h...
  • 常见的B/S的程序结构都有和数据库的交互,本示例通过一简单的增删改查的列子,介绍LAJP的通常使用方式。 一、创建库表结构,使用Mysql: 1. 先创建用户: 下面两条语句创建用户’ali’,其登录密码’ali’,可以从...
  • 简单的数据库查询和管理语句汇总

    热门讨论 2017-11-22 21:32:11
    今天我学习了数据库查询和管理语句,将其中的知识点也就是各种语句进行了汇总...对数据库中的数据进行操作的分类大致分为增删改查四个类别,”增“对应INSERT,”删“对应着DELETE,”改“对应着SET,”查“对应着SELECT.
  • 五、应用说明(一)简单应用简单应用,每种操作都只需要一sql语句即可完成,不需要对数据库操作结果进行额外处理。此类应用,继承SimpleDBAction.java,进行必要初始化,配置对应sql语句即可。如果需要...
  • 数据库查询语句

    2018-03-22 10:27:00
    刚刚学习了数据库增删改查,做了一组关于查题目,大多数很简单,其中有几卡了一下。印象最深刻是根据表生日查询年龄,一直没头绪,经过指点之后发现也是简单不要不要,只需要当前年份减去生日年份就好了...
  • 【本文已迁移到“程序员文摘” http://programmerdigest.cn/category/lajp】常见的B/S的程序结构都有和数据库的交互,本示例通过一简单的增删改查的列子,介绍LAJP的通常使用方式。一、创建库表结构,使用Mysql...
  • 做一个系统后台,基本上都少不了增删改查,作为一个新手入门,我们必须要掌握SQL四条最基本数据操作语句:Insert,Select,Update和Delete! 下面对这四个语句进行详细剖析:  熟练掌握SQL是数据库用户...
  • 3、简单增删改查语句 4、sql函数 5、数据备份和恢复 笔记 1、数据库介绍&安装 1.1、什么数据库 数据库:它是一软件,可以保存数据。在一项目中,项目中的所有数据最后都需要保存在专业的数据库软件中。 ...
  • JSP页面的增删改查操作,通常是由一Manager管理类统一封装,然后调用相应的DAO层去访问数据库,具体到连接何种数据库时,则是在其中DAOFactory去配置实现。在此不再叙述。以StrutsUsermgr为例,讲讲增删改查对应...
  • 数据库的删除查询

    千次阅读 2019-02-18 20:06:14
    数据库的查询语句种分别是“”,“”,“”,“”,接下来呢小编就来介绍一下其中”。所谓”也就是删除查询意思。删除查询是什么意思呢。就是在下面这开发软件输入语句来删除数据。 ...
  • JDBC 中的Statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这对象向数据库发送增删改查语句即可。  Statement对象的executeUpdate方法,用于向数据库发送增、删、改的SQL语句,...
  • 数据库中的事务用来管理操作,查询不需要事务管理,因为它并不会修改数据库中的数据。 在 MySQL 中只有使用了InnoDB 数据库引擎 的数据库或表才支持事务。   事务的特性 事务具有ACID性,即原子性...
  • statement对象介绍Jdbc中的Statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过这对象向数据库发送增删改查语句即可。 Statement对象的executeUpdate方法,用于向数据库发送增、删、改...
  • 六、MySQL数据库表_SELECT查询

    千次阅读 2020-06-07 14:56:18
    在我们日常操作数据库中的数据的时候,无非就种操作,增删改查。当然,这种操作也是我们后续经常使用到的,所以我单独来去讲述这个语句 一、认识SELECT SELECT这个单词啊,是选择的意思,具体选择什么呢,其实...
  • 从机房收费系统看SQL 四大基础语句

    千次阅读 热门讨论 2014-05-16 21:24:52
    当我做完《学生信息...对于初学者来说,掌握增删改查这四大基础语句尤为重要。下面介绍这四大语句主要是对表操作。  【1】表增加元组——insert insert语句既可以为表插入一条记录,也可以一次插入一组记录
  • C#增删查改

    2020-08-08 08:15:15
    根据实际不同使用,对这四个方法使用难度也不一样。 一、 查询 查询方法使用是最多,在其它三个方法也会使用。只要是要对数据做处理首先需要查询到数据。 查询方式有很多种: 1.单表查询 这是一个简单...
  • 在之前开发数据库一直是用XUtils这框架(该框架包含了数据库、网络请求、图片缓存、View...3.屏蔽了所有的数据库语句(包括建表,增删改查)和游标管理。但是,这XUtils这框架是有缺点,它是非线程安全
  • CRUD是Create()、Retrieve()、Update()、Delete()缩写。每一种操作各自对应一种 SQL命令,但是开发者水平总是参差不齐,不是每人都非常熟悉SQL,因此 Android 提供了一系列辅助性方法,使得在 ...
  • 什么是主码数据库的范式什么是数据库的游标什么是视图,视图的优点有哪些什么是索引,多加索引一定会好吗SQL 语言包含哪些部分数据库的增删改查操作在查询语句中,select、from、where、group by、having、order by ...
  • SQLite数据库

    2019-10-14 19:18:17
    增删改查五 .用事务处理 一.SQLite数据库介绍 1.Android 系统集成轻量级的数据库 2.特点: 轻量级 只用一动态库, 是以单个文件形式进行存取 跨平台 支持多操作系统 零配置 无需安装, 直接使用 嵌入式 ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
关键字:

数据库中的增删改查四个语句