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) values(2,‘rose’);
更改
update 表名 set name=‘lilei’ where id=1;
五:语法规范
1 不区分大小写 但建议关键字大写 表名列名小写
2 每条命令最好用分号结尾
3 每条命令根据需要缩进和换行
SELECT * FROM 表名;
4 注释 解释说明
单行注释 #注释文字
-- 注释文字(必须有空格)
多行注释:/* 注释文字*/
五:图形化用户界面
eyemployees库的四张表介绍
1 部门表

部门表
部门名称
部门领导的员工编号
位置编号
2 位置表

位置表
位置编号
街道
邮编
城市
州 省
国家编号
3 工种

工种
工种编号
工种名称
最低工资
最高工资
4

员工编号
名
姓
邮箱
电话号码
工种编号
月薪
奖金率
上级领导的员工编号
部门编号
入职日期
六:基础查询
语法
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 AS 名 FROM 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 ;

浙公网安备 33010602011771号