## 1、MySQL 数据库的建立1.1、拉取 MySQL 镜像
在 docker 中拉取镜像 msql:5.7 这里我们使用的是 mysql 的5.7版本
docker pull mysql:5.71.2、启用容器,配置 mysql 数据库
docker run -p 3306:3306 #映射到主机端3306端口 --name mysql #名称为mysql -v /root/mysql/conf:/etc/mysql/conf.d #创建/etc/mysql/conf.d -v /root/mysql/logs:/logs #创建目录/logs -v /root/mysql/data:/var/lib/mysql #创建目录/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root #创建用户root 密码为root -d mysql:5.7 #使用镜像mysql:5.7
使用 docker ps 查看容器状态,如上图所示即为成功
3、使用 navicat 连接数据库点击连接,选择 mysql
主机为 docker 下的主机 ip 、端口号为3306 、密码为 root,测试连接成功添加即可进入
2、MySQL 数据库的简单使用 2.1Mysql的常见命令show databases ; #查看当前所有数据库 show tables ; #查看当前库的所有表 show tables form 库名 ; #显示其他库中含有的表的名字 select database() ; #查看所处于的库名 select * from tables_name ; #查看某个表中的数据(字段数) select version() ; #查看mysql的版本2.2、Mysql的语法规范
1、不区分大小写,但建议关键字大写,表名、列名小写
2、每条命令最好用分号结尾
3、每条命令根据需要,可以进行缩进或者换行
4、注释
单行注释: # 单行注释: --注释文字 多行注释:2.3、创建数据库
点击新建查询,输入mysql 语句
CREATE DATABASE book ;
数据库建立成功
2.4、创建表与字段使用命令进入所需创建表的数据库(book)
use book;
创建一个名称为 Ssss 的表,插入字段 ID、username、password 并且需要对其定义类型,结果如下
CREATE TABLE Ssss ( ID INT, username VARCHAr(255), password VARCHAr(255) );
数据类型(data_type)表
数据类型 描述 integer(size) #仅容纳整数、在括号内规定数字的最大位数 int(size) #仅容纳整数、在括号内规定数字的最大位数 smallint(size) #仅容纳整数、在括号内规定数字的最大位数 tinyint(size) #仅容纳整数、在括号内规定数字的最大位数 decimal(size,d) #容纳带有小数的数字、“size” 规定数字的最大位数、“d” 规定小数点右侧的最大位数 numeric(size,d) #容纳带有小数的数字、“size” 规定数字的最大位数、“d” 规定小数点右侧的最大位数 char(size) #容纳固定长度的字符串(可容纳字母、数字以及特殊字符)、在括号中规定字符串的长度 varchar(size) #容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)、在括号中规定字符串的最大长度 date(yyyymmdd) #容纳日期2.5、插入值
INSERT INTO 语句用于向表格中插入新的行。
语法:
INSERT INTO 表名称 VALUES (值1, 值2,....); #插入新的行
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....); #在指定的列中插入数据
这里我们演示插入 一行 id=2 username=admin password=admin 的新的一行
INSERT INTO Ssss VALUES(123456,'sql',111111); #password 字段我们使用了varchar类型所以在字符串时还是需要带上单引号 INSERT INTO Ssss VALUES (1, 'Bill', '123qwe');3、SELECT – 查询数据
SELECT 语句用于从表中选取数据,结果被存储在一个结果表中(称为结果集)。
语法:
SELECT * FROM 表名称;
我们也可以指定所要查询数据的列:
SELECt 列名称 FROM 表名称;
注意: SQL 语句对大小写不敏感,SELECt 等效于 select。
3.1、基础查询 语法:
select 查询列表 from 表名 ; --选择,过滤,查看
特点:
1、查询列表可以是:表中的字段、表达式、函数
2、查询的结果是一个虚拟的表格
查询表中的单个字段 select last_name from employees ; 查询表中的多个字段 select last_name,salary,email from employees ; 查询表中的所有字段 select * from employees ;
查询常量值 select 100 ; select 'john' ; 查询表达式 select 100*98 ; 查询函数 select version() ;3.2、条件查询
语法
select 查询列表 from 表名 where 筛选条件 ;
分类:
1、按条件表达式筛选
(条件运算符:<> = != > < >= <=)
查询工资大于12000信息 select * from employees where salary>12000 ;
2、按逻辑表达式筛选
(逻辑运算符: && || ! )
and or not
查询工资在10000到12000之间的员工名、工资以及奖金 select last_name,salary,commission_pct from employees where salary>=10000 and salary<=12000
3、模糊查询
(like between and in is null )
1、like #一般和通配符搭配使用 (% 任意多个字符,包含0个字符 _ 任意单个字符)
查询员工名包含字符a的员工信息
select * from employees where last_name like '%a%' ;
2、between and #可以提高语句简洁度,包含临界值,两个临界值不要调换顺序
查询员工编号在100到120之间的员工信息
select * from employees where employees_id between 100 and 120 ;
3、in #判断某字段的值是否属于in列表中的某一项,in列表的值类型必须一致或兼容,
查询员工的工种编号 IT_PROG 、AD_VP 、AD_PRES中的一个员工名和工种编号
select last_name,job_id from employees where job_id in ('IT_PROT','AD_VP','AD_PRES');
4、is null # =或<>不能用于判断null值is (not) null可以判断null值,
查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees where commission_pct IS NULL ;
3.3、条件查询
引入
select * from employees ; ------原始顺序
语法:
select 查询列表 where 筛选条件 order by 排序列表 asc|desc ;
查询员工信息,要求工资从高到低,反之用 asc select * from employees order by salary desc ;
特点:
order by 可以支持单个字段,多个字段,表达式,函数,别名
4、AND & OR – 运算符A ND 和 OR 可在 WHERe 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
语法:
AND 运算符实例:
SELECt * FROM 表名称 WHERe 列 运算符 值 AND 列 运算符 值;
OR 运算符实例:
SELECt * FROM 表名称 WHERe 列 运算符 值 OR 列 运算符 值;4、AND & OR – 运算符
A ND 和 OR 可在 WHERe 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
语法:
AND 运算符实例:
SELECt * FROM 表名称 WHERe 列 运算符 值 AND 列 运算符 值;
OR 运算符实例:
SELECt * FROM 表名称 WHERe 列 运算符 值 OR 列 运算符 值;暑期编程PK赛 得CSDN机械键盘等精美礼品!



