• mysql数据库单表增删改查命令


    数据库DB-database-mysql

    课程安排

    第一天:

    1.数据库定义以及设计

    2.mysql服务端的安装

    3.mysql-dos操作

    库的操作

    表的操作

    4.mysql客户端navicate工具的安装及使用

    5.建表

    第二天

    单表语句的查询-select

    第三天

    多表语句的查询

    等值连接

    内连接

    嵌套

    外连接

    第四天

    增加、删除、修改

    增删改查

    数据库测试关注点

    扩展数据库的高级知识

    1.性能测试

    2.sql注入

    安全测试

    3.数据库连接测试

    4.数据库事务测试

    5.存储过程

    第一天

    数据库定义以及设计

    什么是数据库

    按照数据结构来组织、存储、管理数据的仓库

    数据库的作用

    存储管理数据

    目标

    1.熟练掌握sql结构化查询语言(structed query language)语句

    2.拓展测试深度:将数据库和功能测试联系到一起

    不仅测试界面可以看到的数据 还可以看到界面不可以看到的数据

    数据库产品分类

    数据库名称

    所属公司

    是否免费开源

    支持平台

    适用项目

    port端口号

    (面试)

    mysql

    甲骨文

    windowslinux

    大型,中型/互联网

    3306

    sqlserver

    微软

    windows

    中小型/传统

    1433

    oracle

    甲骨文

    windowslinux

    大型/金融

    1521

    数据库的组成

    由若干个二维表组成,表格里面有若干记录和字段

    数据库的设计

    学生管理系统:

    学生界面

    课程界面

    成绩界面

    step1:确定功能列表-SRS

    需求编号

    需求类型

    需求名称

    优先级

    xsxxglxt-fun-SRS-001

    功能

    学生增加

    高中低

    非功能/接口

    学生修改

    step2:确定每个界面的可见数据类型和长度

    整型

    int

    默认为11

    字符型

    char

    长度固定,占用空间,查询效率较高

    varchar

    长度不固定,不占用空间,查询效率较低

    日期类型

    timestamp

    浮点型

    decimal(m,n)

     存储数值不会超过m位,小数点不超过n

    decimal(5,2)

    step3: 确定实体:

    一类数据对应一个实体

    学生信息

    课程

    成绩

    step4:确定实体的属性

    每个表中的字段值

    界面可见

    界面不可见

    注册日期

    step5:确定实体间的关系 E-R entity-relationship

    主键

    用来标识唯一一条记录,不能重复

    每张表都要有主键

    (不是必须)

    多个字段组合成主键或新建一个自增的列作为主键

    外键

    用来与另外一张表进行关联

    保持数据的一致性

    可以重复

    和主键类型长度必须一致

    step6:数据库的约束

    主键约束

    primary key

    唯一、不为空

    学生表中学号

    外键约束

    foreign key

    可以为空,依赖于主键

    成绩表中学号

    非空约束

    not null

    不能为空

    姓名

    范围约束

    enum枚举

    举例、有范围选择

    性别(男,女)

    唯一约束

    unique

    唯一的,至多一个为空

    身份证号

    在表中记录,最多一个值为空

    默认约束

    default

    默认的值

    注册日期:2016-03-20

    mysql服务端的安装

    安装过程注意事项

    1.mysql默认端口号3306

    2.手动勾选防火墙

    add fire wall...

    不拦截此端口号

    3.默认字符集:utf8

    防止乱码

    4.默认账号账号密码为:root

    5.勾选远程访问

    6.四个选项打钩表示安装成功

    mysql-dos操作

    进入mysql方式

    1.开始-所有程序-mysql-打开窗口

    2.cmd-进入mysql安装bin目录 mysql -uroot -p

    uuser

    ppassword

    环境变量:系统找到应用程序的位置

    我的电脑右键-属性-高级-环境变量

    退出

    ctrl c

    quit

    exit

    q

    注意:dossql语句后面加分号;

    database的操作

    显示库

    show databases

    创建库

    create database 库名;

    库名不能以数字开头

    删除库

    drop database 库名;

    使用(进入)

    use 库名;

    table的操作

    显示表

    show tables

    创建表

    create table 表名(xm varchar(20),nl int);

    create table xsb(xm varchar(20),nl int);

    create table 表名(字段1 类型(长度) 约束类型1 约束类型2,字段2....);

    主键

    组合

    在语句末尾 primary key(字段1,2..)

    自增字段

    create table xsb(id int primary key auto_increment, )

    外键

    字段1 类型(长度),          foreign key(字段1) references 主表名(主键名)

    显示表的结构

    desc 表名;

    删除表

    drop table 表名;

    先删从表再删主表

    mysql客户端navicate工具的安装及使用

    安装

    1.一路下一步

    2.注册registration

    SN.txt内容复制

    navicate使用

    connection 建立与服务器之间的连接

    connection name:连接名-自定义

    ip地址

    服务器ip地址

    port

    3306

    username

    root

    password

    root

    双击连接---绿色

    创建库

    连接--右键--new database

    库名

    两个字符集都选最后一个

    utf8

    utf8-Unicode-ci

    创建表

    tables-右键-new table--添加字段,类型,长度,约束

    金钥匙--primary key

    allow null-勾选表示允许为空

    add field->在下方增加字段

    insert field->在上方增加字段

    向表中插入数据

    双击表--填写字段值

    下方√号表示更新数据

    下方+号表示增加新数据

    下方-号表示删除数据

    query-

    注意:1.每个单词之间要空格

    2.有小括号不用空格

    3.英文标点--搜狗输入法--设置属性--常规--中文时使用英文标点

    4.注释

    单行

    --

    #

    多行

    /* */

    创建学生表

    create table xsb( xh varchar(20) primary key, xm varchar(20) not null, xb enum('',''), jg varchar(50), nl int, bj varchar(20) default '117', sfzh char(18) unique, zcrq timestamp default current_timestamp )

    第二天

    单表语句查询 select

    查询张三的学生基本信息

    1.找库

    xsxxglxt

    2.找表

    xsb

    _

    3.找字段

    全部信息*

    select *

    年龄

    select nl

    年龄和性别

    select nlxb

    4.找条件

    张三

    where xm=‘张三’

    5.组合语句

    3-2-4

    select * from xsb where xm='张三'

    练习:查询李四学生信息

    单表查询语法运算

    精确查询

    = <> !=

    练习:查询除张三的学生信息

    比较查询

    > >= < <=

    练习:查询年龄>18岁的学生信息

    模糊查询

    like

    练习1:查询姓张同学信息

    select *

    from xsb

    where xm like '%'

    练习2:查询姓名中间带“张字”学生信息

    select * from xsb where xm like '%%'

    not like

    单字符匹配

    _下划线

    多字符匹配

    %

    逻辑运算

    and   or

    练习1:同时显示张三和李四的信息

    练习2nl<25,jg不是北京的同学信息

    select *

    from xsb

    where nl<25 and jg <>'北京'

    练习3:将籍贯是北京、上海、南京、山东、黑龙江同学的信息显示出来

    select * from xsb where jg='北京' or jg='上海' or jg='南京' or jg='山东' or jg='黑龙江'

    练习4:查询班级为1班,性别为女生同学信息

    select *

    from xsb

    where bj='1' and xb=''

    练习5:不姓李,班级1班,性别为男学生信息

    select * from xsb where xm not like '%' and bj ='1' and xb =''

    集合运算

    innot in

    练习1:将籍贯不是北京、上海同学的信息显示出来

    select * from xsb where jg!='北京' and jg!='上海'

    select * from xsb where jg not in('北京','上海')

    练习2:姓名叫李_龙,且籍贯不是南京、新疆的学生信息

    select * from xsb where xm like '_' and jg not in ('南京','新疆')

    练习3:   性别为男生,且籍贯是南京、新疆的学生信息

    select *

    from xsb

    where xb = '' and jg in ('南京','新疆')

    非空运算

    is null

    练习1:成绩为空的学号有哪些

    select xh from cjb where cj is null

    is not null

    练习2:成绩不为空的课程号

    select kch from cjb where cj is  not null

    区间运算

    练习1:年龄大于18小于25的学生信息

    select *

    from xsb

    where nl > 18 and nl < 25

    between  and

    select * from xsb where nl between 18 and 25

    练习2:查找注册日期在2016-4-202016-4-29之间的学生信息

    select * from xsb where zcrq between '2016-04-21' and '2016-4-29'

    排序运算

    order by

    练习1:按年龄从大到小排序,显示学生信息

    练习2:成绩从低到高排序且kch不为1

    select * from cjb where kch != 1 order by cj asc

    升序

    asc

    默认升序

    降序

    desc

    别名

    as

    select nl as '年龄',xb as '性别' from xsb where xm='张三'

    查询 成绩为90分的学生’学号‘和‘课程号’

    select xh as '学号',kch as '课程号'

    from cjb

    where cj =  90

    去重关键字

    distinct 去掉重复的记录

    查询男生女生分别来自哪些省

    select distinct xb,jg from xsb

    注意:distinct必须放在字段前面

    聚合函数(统计函数)--select后面

    统计记录

    count(*)

    练习1:统计有多少个学生

    avg(字段名)

    平均值

    max(字段名)

    最大值

    min(字段名)

    最小值

    sum(字段名)

    求和

    练习1:查询xh002学生的平均分

    select avg(cj),max(cj),min(cj),sum(cj) from cjb where xh='002'

    练习2:查询xh003学生考了几门课

    select count(*) as '考试科目数量' from cjb where xh = '003'

    问题:统计2班同学男生女生各有多少人()

    解决:分组统计

    分成多少组就有多少条记录

    步骤

    1.找表

    from xsb

    2.找字段

    分组字段

    3.分组条件

    bj=2班’

    4.分组

    group by xb

    练习1:统计每个班的平均年龄

    select  bj,avg(nl) from xsb group by bj

    练习2:统计每个班级中男女人数并且按班级降序排序

    select  bj,xb,count(*) from xsb group by bj,xb order by bj desc

    练习3:统计每个班人数且人数在2人以上

    select  bj as '班级',count(*) as '人数' from xsb group by bj having count(*)>2

    练习4:统计每个班最小年龄且最小年龄在18以上的班级

    select  bj as '班级',min(nl) as '最小年龄' from xsb group by bj having min(nl)>18

    group by 分组字段

    分组后条件

    having

    limit

    select * from cjb order by cj desc limit 0,3

  • 相关阅读:
    KL散度与反向KL散度
    matplotlib 清除axis plt.cla()、plt.clf()、plt.close()
    fig,ax = plt.subplots()
    python matplotlib 中ax.legend()用法解释
    Tensorflow 创建神经网络(二)可视化
    Tensorflow 创建神经网络(一)
    Tensorflow add_layer
    Tensorflow feed_dict={}
    Tensorflow tf.assign的使用
    百度编辑器去掉本地保存
  • 原文地址:https://www.cnblogs.com/zqq521/p/6382504.html
Copyright © 2020-2023  润新知