数据库Mysql
数据库DataBase(DB)
DB2,关系型数据库,多用于银行系统
mysql启动与关闭
启动:cmd管理员运行àservices.msc打开服务窗口à找到服务启动
cmd管理员运行ànet startmysql
关闭:cmd管理员运行ànet stopmysql
登陆:cmd管理员运行àmysql -uroot-p
退出:登陆后exit
通过ip地址连接:mysql -h+ip地址-uroot -p
安装目录:mysql下
bin可执行文件
data数据
include c头信息
share错误信息
my.ini配置文件
数据目录:mysqldata下mysql-mysqlServer5.5下
数据库:文件夹
表:文件
数据:数据
SQL:Structured Query Language:结构化查询语言
定义了操作所有关系型数据库的规则
通用语法:
1可以单行或多行写,用分号结尾
2不区分大小写,建议大写关键字
3空格增强可读性
4
3种注释:
单行注释:-- 注释内容或#注释内容 (--后需要一个空格才可以写注释内容)
多行注释:/*注释*/
5 SQL分类:
1DDL(Data Definition Language)数据定义
数据库,表,表中列的 创建,修改,删除等。关键字:create, alter,drop,等
2DML(Data Manipulation Language)数据操作
表数据进行增删改。关键字:insert, delete, update 等
3DQL(Data Query Language)数据查询
查询表的数据。关键字:select, where 等
4DCL(Data Control Language)数据控制
定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
DDL:操作数据库和表
1操作数据库:CRUD
creat创建
创建新的数据库: createdatabase 数据库名称;
创建数据库,判断是否存在,并指定数据库字符集
createdatatbaseif not exists数据库名character set gbk;
retrieve查询
显示所有数据库名称: showdatabases; (information_schema视图)
查看指定数据库的字符集: showcreate database 数据库名称;
update修改
修改数据库字符集: alterdatabase 数据库名称 character set 字符集名称;
delete删除
删除数据库:drop database 数据库名称;
输出前看是否存在:drop databseif exists 数据库名;
使用数据库
使用数据库:use 数据库名;
查看正在使用的数据库名称: select database();
2操作表:
1creat创建
创建数据表:create table 表名(
列名1 数据类型1,
列名2 数据类型2,
列名k 数据类型k,
。。。
列名n 数据类型n
);
注意:最后一列数据类型不要逗号结尾
数据库类型: int 整数
double小数 score double(5,2) score 一共5位,小数点后保留2位
date日期,只包含年月日
datetime日期,包含年月日时分秒yyyy-MM-dd HH:mm:ss
timestamp时间错,包含年月日时分秒,默认系统时间
varchar字符串 name varchar(20)姓名最大20个字符
复制表:create table 表名 like 要被复制的表名;
2retrieve查询
查询某个数据库中所有的表名称: showtables;
查询表结构:desc 表名;
3update修改
修改表名:alter table 表名rename to 新表名;
修改表的字符集:alter table 表名character set 字符集;
添加一列:alter table 表名add 列名 数据类型;
修改列名称 类型:alter table 表名change 列名 新列名 新数据类型;
altertable表名 modify 列名 新数据类型;(换数据类型)
删除列
alter table表名 drop 列名;
4delete删除
drop table表名;
drop table if exists表名;
DML(DataManipulation Language)增删改表中数据:
1添加数据
insert into表名(列名1,列名2,。。。列名n)values(值1,2,n);
注意:列名和值要一一对应
insert into表名 values(值1,值2,。。);默认所有列都加入。
类型不要单双引号,其他类型需要
2删除数据
delete from表名 where 条件;
注意:如果不加条件则删除表中所有数据deletefrom 表名;不推荐使用,
truncate table表名; 删除表并创建一个一模一样的表,推荐使用,效率高
3修改数据
update表名 set 列名1 = 值1,列名2 = 值2,。。。【where 条件】
注意如果不加where条件,表中所有该列都会改变
DQL(DataQuery Language)查询
select*from表名; 查询表中所有内容
1.语法:
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
2.基础查询
1.多个字段的查询
select字段名1,字段名2... from 表名;
注意: 如果查询所有字段,则可以使用*来替代字段列表。
2.去除重复: distinct
3.计算列
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
*表达式1:哪个字段需要判断是否为null
*如果该字段为null后的替换值。
4.起别名: as:as也可以省略
3.条件查询
1. where子句后跟条件
2.运算符
>、= 、= 、
BETWEEN...AND
IN(集合)
LIKE:模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL and或 && or 或 || not 或 !
查询年龄大于20岁 SELECT * FROM student WHEREage >= 20;
查询年龄在20-30之间 SELECT * FROM student WHERE age BETWEEN 20 AND 30;
查询年龄22岁,18岁,25岁的信息 SELECT *FROM student WHERE age IN (22,18,25);
查询英语成绩为null SELECT * FROM student WHERE english IS NULL;
查询英语成绩不为null SELECT *FROM student WHERE english IS NOT NULL;
查询姓宋的有哪些? like SELECT * FROM student WHERE NAME LIKE '宋%';
查询姓名第二个字是中的人 SELECT *FROM student WHERE NAME LIKE "_中%";
查询姓名中包含建的人 SELECT *FROM student WHERE NAME LIKE '%建%';
领取专属 10元无门槛券
私享最新 技术干货