1.命令行客户端
1.1闪退情况
打开cmd,将命令行客户端拖进cmd,回车,输入密码,回车,见错误信息
2.图形化客户端
3.创建数据库
create database 数据库名;
create database if not exists 数据库名;
手动指定字符集(默认拉丁文)
create database 数据库名+character set 字符集名字/charset 字符集名字
支持中文的编码(GBK,UTF8)
ps 字符集
不同字符集,一个汉字占的字节数不同
在gbk 下才是一个汉字两个字节
(由Unicode演化而来)UTF8,变长编码,不仅支持中文还支持其他语言文字,一个汉字3字节;(mysql中utf8是个残本,缺少emoji表情)(utf8mb4是完全体)
Unicode ,支持给一个字符编码,不支持字符串编码
4.查看数据库
-列出当前的mysql服务器上一共有哪些数据库
show databases;
5.选中数据库
use 数据库名;
选择某个数据库,对其表进行增删改查;
面试真题
LOL属于那个类型游戏 ()
A.MOBA B.FPS C.RPG D.RTS
6.删除数据库
drop database 数据库名;(删除数据库中所有数据)
线上数据库/生产环境数据库 -是被用户访问的数据库,真实用户的信息
线下数据库 -开发/测试节点,自己构造的一些“假的”数据
mysql必须一直运行,如有问题(报警程序)
数据表的操作(先选中某数据库)
1.数据类型

(blob)
ps.在码表上查不到的是二进制文件,如图片、视频等

timestamp-时间戳-秒级表达
DATETIME -只表达年月日
int long double decimal varchar datatime
2.创建表
先选中数据库
create table 表名(列名 类型,列名 类型..);
ps.如果想让表名/列名和关键字一样,用``把其引起来
无符号类型
闰秒
钱 unitprice int(把钱转换为以分为单位,整型)
3.查看所有表(当前选中数据库)
show tables;
4.查看指定表的结构
desc 表名;
key 约束
default 默认值
extra 额外信息
5.删除表
drop table 表名;
6.增删改查(CRUD)
6.1新增
insert into 表名 values (值,值...);
指定列插入:insert into 表名(列名,列名...)values(值,值...)
一次插入多行记录:insert into 表名 values (值,值..)(值,值...)...
用‘’or “”表示字符串;
datetime 如何插入:‘2015-01-01 12:00:00’;
如果要填当前时间:now();
6.2查询
- 全列查询
select* from 表名;
危险!
如果当前数据库表中的数据非常多有可能会有以下问题:
1.读取硬盘:把硬盘的IO给跑满了,此时程序访问其它硬盘,会非常慢
2.操作网络:也可能把网卡的宽带跑满,此时,其他客户端想通过网络访问服务器,也会很慢
以上可能导致客户端无法顺利访问数据库->影响整个系统(相当于数据库服务器挂了)
- 指定列查询
select 列名,列名..from 表名;
- 查询字段为表达式(一边查一边计算)
select 列名表达式 from 表名;(不会修改原数据,只是临时计算结果)
- 指定别名(查询时给指定列取别名)
select 表达式 as 别名 from 表名;
- 去重
distinct 修饰某个列/多个列
ps.修饰多个列时,只有每列的值都重复才记为重复;
- 查询的时候排序
排序规则:a)针对哪个列作为比较规则b)升序还是降序
select 列名 from 表名 order by 列名 asc/desc;
ps. ‘asc’升序 ‘desc’降序,默认升序;
- 指定多个列来排序
select 列名 from 表名 order by 列名1,列名2.. asc/desc;
先按列1大小排序,列1相同,按列2拍...(优先级)
- 条件查询(WHERE)
指定具体条件,按条件筛选;
select 列名 from 表名 where 条件;

LIKE(根据模糊的标准筛选)
‘%’ 代表任意多个(包括0个)任意字符
‘_’表示任意一个字符;
eg.
- %X% 包含X的
- %X 以X结尾的
- X% 以X开头的
- X_ 以X开头+任意一个其他字符

注意:
1.条件查询,表中有一列数据中有任意一个值为NULL,在查询条件时可能查不出来该数据
NULL和任意值比较/计算都为NULL=>FALSE,所以不会筛选出来!!
2.select条件查询执行顺序:a.遍历表中每个数据 b.把当前记录带入条件,根据条件进行筛选c.如果这个记录条件成立,就要保留,进行列上的表达式的计算,定义别名!
ps.预先定义好别名!!否则可能会报错,因为第三步才执行定义别名!
3.order by会在所有步骤之后再排序,所以可以使用别名!
4.查询NULL不能用‘=’,要用'<=>' or ‘is null’ or ‘is not null’!
ps 以后工作中的几个环境
线下环境:
1. 办公环境2.开发环境3.测试环境
线上环境:
1.生产环境:用户可以访问到的,直接影响用户体验(谨慎select*)
- 分页查询 LIMIT
写在整个查询语句之后;
- limit 3 : 查询前三行数据
- limit 3 offset 3 : 前三行之后的三行数据(offset-偏移量)
922

被折叠的 条评论
为什么被折叠?



