MYSQL 第一课

DB 数据库 存储数据的仓库

DBMS 数据库管理系统(软件)常见的有:MySQL Oracle DBs SqlServer

SQL的优点:几乎所有的DBMS都支持SQL 简单易学

一:启动与关闭服务

net stop MySQL
net start MySQL

二:服务的登陆与退出

1 通过自带的客户端

2 通过Windows自带的命令提示符

mysql -h 主机名 -P 端口号 -u 用户名 -p 密码

退出 (Ctrl键+c)

exit

三:查看版本

select version();
mysql --version //没有分号 因为是Windows命令

四:常见的命令

查看当前所有的数据库

show databases;

打开指定的库

use 库名;

查看当前库的所有表

show tables:

查看其他库的所有表

show tables from 库名;

创建表

create table 表名(
     列名id  列类型int,
     列名name  列类型varchar(20));

 

查看表结构

desc 表名;

查看表的数据

select * from 表名;

插入

insert into 表名(id,name) values2,‘rose’);

更改

update 表名 set name=‘lilei’ where id=1

 五:语法规范

1 不区分大小写 但建议关键字大写 表名列名小写

2 每条命令最好用分号结尾

3 每条命令根据需要缩进和换行

SELECT
*
FROM
表名;

 

 4 注释 解释说明

单行注释 #注释文字

           -- 注释文字(必须有空格)

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

五:图形化用户界面

eyemployees库的四张表介绍

1 部门表

部门表

 

部门名称

部门领导的员工编号

位置编号

2 位置表

 

 

位置表

位置编号

街道

邮编

城市

州 省

国家编号

 

3 工种

 

 工种

工种编号

工种名称

最低工资

最高工资

 

 员工编号

邮箱

电话号码

工种编号

月薪

奖金率

上级领导的员工编号

部门编号

入职日期

 

六:基础查询

语法 

select 查询列表 from 表名;

 

类似于

system.out.println(打印东西);

 

特点:

1 查询列表可以是:表中的字段、常量值、表达式、函数

2 查询的结果是一个虚拟的表格

#1 查询表中的单个字段

SELECT last_name FROM employees;

 

#2 查询表中的多个字段

SELECT last_name,salary,email FROM employees;

 

#3 查询表中的所有字段(双击字段  更新格式F12)(若字段和关键字有重名 字段用单引号)

SELECT 
  `employee_id`,
  `first_name`,
  `last_name`,
  `email`,
  `phone_number`,
  `job_id` 
FROM
  employees;

 

SELECT * FROM employees;

 

#4 查询常量值

SELECT 'john';
SELECT 100;

 

#5查询表达式

SELECT 100%98;

 

#6查询函数

SELECT VERSION();

 

#7 起别名

/*1 便于理解

  2 如果要查询的字段有重名*/

SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name ASFROM employees;#使用as
=SELECT last_name 姓,first_name 名 FROM employees;#使用空格

 

#案例 查询salary,显示结果为out put(out put中有空格(特殊字符)所以用双引号括起来)

SELECT salary AS "out put" FROM employees;

 

#8 查重

查询员工表中涉及到的所有部门编号

SELECT department_id FROM employees;#有重复

 

SELECT DISTINCT department_id FROM employees;#无重复

 

# 9 +号的作用

/*

java 中+号:

1 运算符,要求两个操作数都是数值型

2 连接符,要求有一个操作数是字符串

mysql中+号:

1 仅仅只有一个功能:运算符

select 101+10;两个操作数都为数值,则做加法运算

select  '123'+90;其中一方为字符型,试图将字符型数值转换成数值型

                               如果转型成功,则继续做加法运算

select  'jone'+90;  如果转型失败,则将字符型数值转换为0

select null+10; 只要其中一方为null,则结果肯定为null

*/

#案例  查询员工名和姓连接成一个字段,并显示为姓名

错误代码
SELECT
last_name + first_name AS 姓名 FROM employees ;

 

SELECT 
  CONCAT(last_name,first_name) AS 姓名 
FROM
  employees ;
SELECT CONCAT('a','v','c') AS 结果;
  

 

例题

1 显示表department的结构,并查询其中的全部数据

DESC departments;
SELECT * FROM  `departments`; 
SELECT * FROM  departments;           

2 显示出表employees中的全部job-id(不能重复)

select distinct job_id from employees;

3 显示出表employees的全部列,各个列之间用逗号连接,列头显示成out_put
SELECT 
  IFNULL(commission_pct, 0) AS 奖金率,
  commission_pct 
FROM
  employees ;# IFNULL 表示若值为null不管与谁连接都为null,IFNULL(commission_pct, 0)把null的换为0

SELECT 
  CONCAT(
    IFNULL(`employee_id`, 0),
    ',',
    `first_name`,
    ',',
    `last_name`,
    ',',
    `last_name`,
    ',',
    `email`,
    ',',
    `job_id`,
    ',',
    `salary`,
    ',',
    IFNULL(`commission_pct`, 0),
    ',',
    IFNULL(`manager_id`, 0),
    ',',
    `department_id`,
    ',',
    `hiredate`
  ) AS OUT_PUT 
FROM
  employees ;



posted @ 2020-09-14 23:02  袁小娜  阅读(147)  评论(0)    收藏  举报