SQL:结构化查询语言
DDL:操作数据库、表
DML:增删改表中记录
DQL:查询表中的记录
DCL:管理用户与授权
mysql的安装与配置
1.详情参见安装文档
2.安装版卸载:需要先找到my.ini中的datadir路径,一般默认是C:/program data中的Mysql文件夹,需要将它删除 然后卸载 (卸载时mysql服务必须处于启动状态)
3.配置版卸载:
- 使用管理员权限打开cmd 输入net stop mysql
- 输入mysqld -remove
- 删除本地安装的mysql目录文件夹
4.mysql配置
mysql服务启动
1.通过管理员权限cmd net start mysql
2.通过Windows服务窗口 cmd ---> services.msc
mysql登录
1.借助于cmd
mysql -u登录账号 -p登录密码 没有密码直接回车
mysql -h连接服务器的ip地址 -u登陆账号 -p登陆密码 如果权限不够,给 root账号开启连接mysql连接权限 :
0.使用mysql数据库 use mysql
1.grant all privileges on *.* to root@'%' identified by '连接服务器的密码' with admin option/ with grant option 权限开启
2.flush privileges 刷新新的系统权限
2.借助于可视化管理工具
mysql退出
quit
exit
mysql的目录结构
1.安装目录结构 basedir目录中(my.ini中显示)
bin 二进制文件 mysql可执行脚本 如:mysqld.exe
data数据 mysql运行需要的数据文件还有mysql运行的日志文件
include C语言的头信息
lib mysql运行需要支持的一些类库 jar文件
share 运行的一些错误信息
my.ini 一些配置信息
2.数据目录结构 datadir目录中
数据库:一个个文件夹
表:一个个文件
数据:一条条记录
数据库管理系统、数据库和表的关系
可以使用数据库管理系统创建多个数据库,比如java31/java21 数据库... ,一般一个项目 对应的是一个数据库,一个数据库可以创建多张表。在项目中,数据库中的表映射Model 类(pojo、model、entry)
后台中的model类 一般用于临时存储从数据库中查询出来对应表中的数据,从user表(字段)查询出来一条记录,这条记录对应的就是后台服务器中的一个user对象(属性)
SQL操作数据库
作用:
- 是一种数据库的一种查询语言的标准,对所有的数据库都支持
- 不同的数据库SQL语句可能有点不同(方言),MySql Oracle DB2
sql语句分类:
- DDL:操作数据库、表 数据定义语言 data definition language
- DML:增删改表中记录 数据操作语言 data manipulation language
- DQL:查询表中的记录 数据查询语言 data quary language
- DCL:管理用户与授权 数据控制语言 data control language
DDL语言
1.操作数据库
创建数据库 方式很多 create
create database 数据库名;
create database if not exists 数据库名; //创建的时候先判断是否存在
create database 数据库名 character set 编码字符集;//指定编码字符集
查询数据库 retieve
查询当前数据库服务器所有的数据库
show database
查询某个数据库的编码字符集
show create database 数据库名称
修改数据库 update
修改数据库的编码字符集
alter database 数据库名称 character set 编码字符集
删除数据库 delete / drop
drop database 数据库名称
drop database if exists 数据库名称 判断是否存在并删除
2.操作表
1.创建表
create table 表名(
列名1 数据类型,
列名2 数据类型,
...
);
数据类型:
整数类型 tinyint(微整型1) smallint(小整形2) mediumint(中整形3) int(integer4)
小数类型 double(8) float(4)
日期类型 date(年月日) time(时分秒) datetime(年月日时分秒) timestamp(时间戳、年月日时分秒,如果没有赋值,会自动获取当前时间自动赋值)
字符串类型 char(固定长度的字符串) varchar(可变长度的字符串、使用几个字符就占几个字符)
二进制类型 tinyblob(允许0-255个字节) biglargeblob(允许0-65535字节) longblob(非常大)
文本类型 tinytext(允许长度为0-255字节) text(允许0-65535个字节) longtext(非常大)
2.查看表
show tables; 查看当前使用的数据库下所有的表
desc 表名; 描述该表结构
show create table 表名; 查看创建的表 ---> 查看该表创建时使用的sql语句
create table 新表名 like 旧表名; 快速创建一个表结构相同的表(复制)
3.修改表
alter table 旧表名 rename to 新表名; 修改表名
alter table 表名 character set 编码字符集; 修改编码字符集
alter table 表名 add 列名 数据类型; 给表添加一列字段
alter table 表名 drop 列名; 删除一列
alter table 表名 change 旧列名 新列名 新数据类型; 修改列名和类型
alter table 表名 modify 列名 新数据类型;
4.删除
drop table 表名; 删除表
drop table if exists 表名; 删除前判断
大多数情况下我们直接通过图形化管理工具进行操作
DML 增删改数据库中表的数据
1.添加数据
insert into 表名(列名1,列名2,...) values(值1,值2,...);
注意事项:
列名和值的类型保持一致(一一映射关系)
如果表名后面没有指定列名,默认为给该表所有的列添加对应的值(依然有序)
insert into 表名 values(值1,值2,...);
除了数字类型外(int double),其他类型一律使用引号(单双引号不区分)
2.删除数据
delete from 表名 [where 条件] []代表可选操作
根据表中某个数据或某些字段信息删除 例如 where username = '小王';
注意事项:
如果不跟条件,则删除整张表中数据
删除表所有的记录 delete from student;(按数据删除) / truncate table 表名;(先把表删除,然后再创建一模一样的空表)
如果条件中的字段值有重复的,凡是符合条件的都删除
3.修改数据
update 表名 set 列名1 = 替换值1 ,列名2 = 替换值2 ,...,列名n = 替换值n [where 条件]
注意事项:
如果不带条件,则会修改表中所有记录
DQL查询表中的记录
普通查询
select 需要查询的信息(列名1,列名2...) / *(表中所有信息)from 表名 [where 条件];
完善后:
select
字段列表
from
列表名称
where
条件列表
group by
分组字段
having
分组之后的条件
limit
分页限定
去重查询 distinct
ifnull表达式 ifnull(表达式1,表达式2)
表达式1:代表哪个字段需要判断是否为null
表达式2:如果该字段值为null后面的进行替换
起别名操作 (多表操作)
表名 as(可省略) 新的表名
查询出的字段信息 as 新名字
当查询同一张表,并进行多次查询时,可以使用别名
来实现。
注意事项:起别名只是在sql语句中方便查询使用的,并不会对数据库原来的文件起到 影响