• mysql数据库


    先看与数据库有关的几个名词:

    DBdatabase,数据库,里边保存了有组织的规范的数据。

    DBMSdatabase management system 数据库管理系统,简称数据库软件,数据库产品,数据库是通过DBMS创建和操作的容器。

    SQL:翻译叫结构化查询语言(Structure Query Language),专门用来与数据库通信的语言。

    常见的数据库:MySql Oracle DB2 SqlServer

    SQL的有点:

    1.不是特定的数据库供应商专有的语言,几乎所有DBMS都支持。

    2.简单易学。

    3.简单,但实际是可以进行非常复杂和高级的数据库操作。

    前面讲了,数据库是有组织的,规范的把数据保存起来的。

    怎么个组织的,规范的?

    数据库的特点:

    1.    将数据放到数据表格(二维表)中,在将表格放到库中。

     

    2.一个数据库中可以有多张表,每个表都有一个名字,用来标识自己。表名必须唯一。

    3.表具有一些特性,这些特性规范了数据在表中的存储格式,形式,类似java中的的设计。以后的开发中你会发现,表和类是可以一一对应起来的。

    4.表由列构成,每列我们叫一个字段。所有表都是由一个多个字段(列)构成,这里表的每个字段对应到java中类的属性。比如学生信息表(学号,姓名,年龄,身高),对应javaStudent类里有属性:学号,姓名,年龄,身高

    5.表中数据是按照行来存储的,这里表有那些字段,就是表的结构对应java中一个Class类有那些属性;表里具体的每一行数据,对应javanew出类的实例。

    MySql数据库原本是瑞典的公司叫MySqlAB公司,后被Oracle收购。

    https://news.cnblogs.com/n/577472Mysql的开发者,也是一个传奇)

    优点:

    -成本低:开源代码,一般可以免费试用

    -性能高:执行很快

    -简单:很容易安装和使用

    DBMS分为两类:

    -基于共享文件系统的DBMSAccess

    -基于客户机-服务器架构的DBMSMySqlOracleSqlServer

    安装myslq一般是说的安装服务端。

    Mysql提供两个版本:

    -社区版(免费)

    -企业版(收费)

    下载:

    -目前可以下载的版本:5.55.65.78.0(测试)

    https://dev.mysql.com/downloads/mysql/

    http://mirrors.sohu.com/mysql/MySQL-5.5/

    mysql ZIP Archive压缩版本,需要自己配置

    mysql MSI Installer:安装版本,安装过程中自动配置

    卸载:

    -程序卸载这是第一步

    -安装目录残余删除

    -C盘下的隐藏文件夹ProgramData下的mysql残余删除,才算真正基本卸载干净。

    安装演示!

    Mysql数据库的安装目录下my.ini简单介绍!

    启动和停止:

    1、任务管理器或者计算机-->管理--->服务

    2、命令行:net stop mysql net start mysql

    MySql自带的客户端登陆和退出(exitctrl+c);

    cmddos命令端(必须是管理员的):mysql -h localhost -P 3306 -u root -p

    -h:主机

    -P:端口

    -u:用户名

    -p:密码(这里可以写,也可回车后再写,写了密码,密码和-p不能有空格,前面的可以有空格)

    本机的话,也可以简写:mysql -u root -p

     

    show databases; 查看数据库系统里有那些数据库。

     

    use test打开一个数据库。

    show tables查看刚刚打开的数据库里有些什么表;

    show tables from mysql查看非所在库的表信息,用from关键字指定目标库。

    select database(); 查看目前在那个库里。

    演示一下SQL常用增、删、改、查,让大家有个感性的了解,后面要详细的讲!

    create table student(id int , name varchar(4)); 创建一张表

    desc student;查看表结构。

    select * from student; 查看表里的记录。

    insert into student(id,name) values (1,'小白'); 向表里插入一条记录值。

     

    Sql当中用select version();查看mysql的版本信息。

     

     

     

     

    Dos当中mysql --version 也是查看mysql版本信息。

    查看数据库的编码:show variables like '%char%';

    命令行中查询表的默认字符集:show create table 表名称;

    修改表的默认字符集:ALTER TABLE 表名称 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    1mysql的命令不区分大小写,但建议关键字大写,表名、列名小写;

    2、每条命令用“;”结尾。

    3、每条命令根据需要,可以进行缩进和换行,建议关键字在一行。

    4、注释:

    单行注释:#文字文字

    单行注释2 -- 文字文字(主要 -- 后有空格)

    多行注释: /* 文字文字 */

    安装SQLyog

    SQLyog的图形界面简单介绍一下!

    SQL语言:

    1DQL语言(Data QueryLanguage) 数据查询语言.

    2DML语言(Data Manipulation Language)数据操纵语言,适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select.

    3DDL语言(Data Definition Language)数据定义语言,适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,AlterDrop.

    4TCL语言,事务控制语言(TCL.

    导入雇员数据库,介绍一下数据库结构和字段含义!

     

     

     

     

     

    #1、语法:

    select 要查询的信息 from 表名;

    #2、要查询你的信息可以是什么:

    表中的一个字段或很多字段(中间用“,”分开)

    常量值

    表达式

    函数

    #演示单个字段查询:

    SELECT first_name FROM employees;

     

     

    #演示查询多个字段:

    SELECT first_namelast_name,....... FROM employees;

     

    #演示查询表中的所有字段:

    SELECT first_namelast_name,....把所有字段写完 FROM employees;

    SELECT * FROM employees; //*:通配符,表示所有字段

      

    #另外补充:

      SELECT

        `department_id`, 

       `department_name`,

       `manager_id`

      FROM

       departments ;

    ` 符号:不是单引号,是着重号!用于区别关键字和字段名的,可以省略。

    #演示查询常量

      select 100;

      select 'john'; 

    #演示查询表达式

      select 100%98

     

    #演示查询函数

    select version()

     

    select ifnull(参数1,参数2); //参数1真的上null,就返回参数2,参数1不上null,就返回参数1自己.

     

     

    #3、查询到的结果:是一个虚拟的表格。

    #4、给字段起别名

      方法一:用as关键字,如select 100%98 as 余数结果

      好处:一个容易理解,语义化,另一个在后面的多表查询时候区分不同表里的同名字段。

      方法二:as关键字可以换成空格

     

     

    #案列:查询salary,并起别名为 out put,别名里有特殊符号空格,这时要加单引号。

     select salary as ‘out put’ from employment

    #5、去重复

      #查询员工表中的所有部门的编号

    select distinct department_id from employment

     

    #6+号的作用

    #查询员工的名和姓,并并姓名链接起来显示

    select last_name+first_name as 姓名 from employment;

    // java中加号的作用:运算符,链接符(其中有字符型时)

    // mysql中只有一个功能:运算符

    select 100+90

    select ‘123’ + 90;当有字符型的时候,它会试图将字符型转换成数值型,然后再计算。

    select ‘abc’ + 90;如果字符型不能转换,它就会自动将字符型转换为0,然后再计算。

    select null + 任何东西;结果的null

    怎么实现这个例子呢?可以使用mysql你的一个拼接函数:

    select concatlast_name,first_name as 姓名 fromemployment

     

    #条件查询

    语法

    select

    查询列表

    from

    表名称

    where

    筛选条件

    1. 按照条件表达式来筛选:

    条件运算符: > , < , = , != / <>(MYSQL特有的不等号) , >= , <=

    2.按照逻辑表达式筛选

    逻辑运算符:支持java的写法(&& , || , ! ), 但推荐使用mysql自己的(and , not , or)

    3.模糊查询:

    like between...and , in , is null

    4.看条件表达式:

    案例:查询员工工资大于1200的员工有哪些;

    select * from employees where salary > 12000;

    案例:查询部门编号不等于90号的员工名和部门编号:

    select concat(last_name,first_name) as 姓名 , department_id

    from employees where department_id <> 90;

    5.逻辑表达式:

    逻辑运算符主要作用:链接表达式

    &&and : 全式true结果才式true;

    ||or: 只要有一个true结构就式true;

    !not: 取反;

    案例:工资在1000020000之间到员工名,工资和奖金

    select last_name,salary,commission_pct

    from employees where salary>=10000 and salary<=20000;

    案例:查询部门标号不式在90110之间到,或者工资高于15000点员工信息

    select * from employees where (department_id<90 and department_id>110) or salary>15000;

    select * from employees where not(department_id>=90 and department_id<=110) or salary>15000;

    模糊查询:

    like

    between and

    in

    is null | is not null

    like:

    案例:查询员工名中包含了"a"字符的所有员工的信息

    select * from employees where last_name like '%a%'; // %:通配符,表示任意多个字符,也可表示0个字符, _:任意一个字符;

    案例:查询第三个字符为n或第五个字符为l的员工信息

    select * from employees where last_name like '__n_l%';

    案例:查询员工信息表中员工名第二个字符是"_"的员工信息

    select * form employees where last_name like '_\_%';//支持java的转义字符

    select * from employees where last_name like '_&_' escape '&'; // escape '&':说明&这个符号是转义字符,mysql推荐这样写;

    注意:一般情况下,like都是通配符连在一起使用的.

    between and:

    案例:查询员工工资中1000020000之间到员工信息

    select * from employees where salary>=10000 and salary<=20000; 

    select * from employees where salary between 10000 and 20000;

    注意:使用between and

    1.可以简洁sql语句

    2.并且包含临界值

    3.连个临界值不能调换位置,小的在左边,大的值在右边.

    in:

    案例:查询员工的工种编号是 it_prog,ad_vp,ad_pres中任意一个的员工信息

    select * from employee where job_id='it_prog' or job_id='ad_vp' or job_id='ad_pres';

    select * from employees where job_id in('it_prog','ad_vp','ad_pres')

    in:判断某个字段的值是否属于in列表中的某一项

    1.使用in比使用orsql语句更简单

    2.in的值必须是同一种数据类型或者兼容

    is null | is no null:

    案例:查询没有奖金率的员工信息

    select * from employees commission_pct is null; 注意:commission_pct=null这个写法不能判断null

    查询奖金率的就取反:

    select * from employees commission_pct is not null; 注意:当然这里is not也不能换成<>不等号. 

    补充一个东西:

    安全等于号:<=> , 这个符号可以判断null,也可以判断普通数值;

    is null:只能判断null,不能判断普通数值

    =:只能判断普通数值,不能判断null

     后续看有道云笔记https://note.youdao.com/web/#/file/49AE1644B12943BE814F7588A9800F8D/note/58DBCB2BDDE04542B3B40A1342A8D103/

  • 相关阅读:
    网络连接的小图标无法显示的解决
    ASP马免杀工具—ASP万能溶剂
    网络连接的小图标无法显示的解决
    Metisse:相当酷的窗口经管器
    Realtek ALC268集成声卡驱动问题在ubuntu下的办理方案
    mtPaint:绘制图标及像素图
    Solaris为单块网卡装备多个IP
    无比震荡 Fedora Linux把密码输出都落实起来
    Parted Magic-Linux 中的分区把戏师
    Linux和NTFS冲突
  • 原文地址:https://www.cnblogs.com/jikebin/p/12765071.html
Copyright © 2020-2023  润新知