MySQL的基础知识(第一篇--基础命、DDL、DML)
本片博客是知识回顾,在日常的工作中接触到的数据库仅是SQLite的使用,安卓中sqlite也有很多的第三方的数据库插件供我们使用,郭神的LitePal是我平时用的比较多的,因为长时间的依赖第三方库,对一些基础的数据库语句反而生疏了,写这篇博客记录MYSQL知识。
mysql的安装
对于mysql的安装,我们可以直接去下载对应的版本,mysql5.x版本是免费的,之后开始收费,这边给大家准备5.7.27的安装包,安装过程大家可以去搜索,比较简单这边直接放上链接:
链接:https://pan.baidu.com/s/1qxBXvHMtaJIHMj9xRgLqyw
提取码:8jv8
mysql的基础命令
- 开启mysql的服务
net start mysql
- 关闭mysql的服务
net stop mysql
- 打开服务窗口
service.msc
- 连接本机mysql
mysql -uroot -p
该命令的完整写法
mysql --host=127.0.0.1 --user=root --password=123456
其中 --host====>-h,后面加上mysql的ip地址,此处是本机的mysql
--user====>-u,后面跟上登录的用户名,此处是root
--password===>-p,后面跟上密码
doc窗口进入mysql即代表成功
- MySQL退出
exit
quit
SQL(Structure Query Language)
结构化查询语句--只要是关系型数据库均可以使用的语言,不同的数据库存在一些方言,使用之前需要先进入数据库,具体命令见上图
SQL的规则
- 单行/多行书写,分号结尾
-
空格/缩进增强语法的可读性
- SQL语句不区分大小写,关键字使用大写
- 三种注释:
- "//"单行注释
- "#"单行注释(mysql独有)
- "/**/"多行注释
数据库语言的分类
DDL可借助GUI去实现。好用的GUI工具有NaviCat以及SQLyog,idea中的数据库工具在也是很好用的,毕竟那一套快捷键很熟悉。
- DDL
- DML
- DQL(DQL及DCL的用法会在下一篇中)
- DCL
DDL操作数据库和表
- 操作数据库
- C创建
create database+数据库名称;
create database if not +数据库名称;
create database if not exists+数据库名称character set+字符集(utf-8/gbk....);
- R查询
- 查询所有数据库名称
show databases;
- 查询某个数据库的字符集和数据库创建语句
show create database +数据库名称;
-
U修改
- 修改数据库的字符集
alter database testcreate character set utf8;
注意:此处的字符集是utf8,不可书写错误
-
D删除
drop database+数据库名称;
drop database if exists+数据库名称;
-
使用数据库
- 使用数据库
use +数据库名称;
- 查询当前正在使用的数据库名称
select database();
- 操作数据库表
- idea中的数据库工具的使用,请参见这篇博客,感谢大佬的博客:
idea数据库工具的使用 - 创建数据表
create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3,列名4 数据类型4);
- 数据库的数据类型:
- int 整数型
- double 小数类型,double(4,1),一共4位,小数点后1位(最大是999.9)
- date 日期类型,只包括年月日 yyyy-MM-dd
- datatime 日期类型,包含年月日时分秒,yyyy-MM-dd HH:mm:ss
- timestamp 时间戳类型,若赋值为null,则默认使用当前系统时间,自动赋值(注意)
- varchar(20) 字符串类型,括号中的数字为字符串的长度(王峰为2个字符,wangfeng为8个字符),varchar(20)表示最大字符数为20
create table pinfo (
id int primary key auto_increment
,name varchar(20)
,score double(4,1)
,register_date date
,cur_date timestamp default current_timestamp on update current_timestamp
);
- 查询
- 查询某个数据库所有表名称
show tables
- 查询表结构
desc +表名;
-
修改:
- 修改表名:
alter table 表名 rename to 新表名;
- 修改表的字符集:
alter table 表名 character set 字符集(utf8、gbk)
- 添加一列
alter table 表名 add 列名 数据类型;
- 修改列名称、类型
- 修改名称类型
alter table 表名 change 列名 新列名 新数据类型;
2. 只修改类型
alter table 表名 modify 列名 新数据类型;
-
删除一列
-
删除
drop table 表名; drop table if exists 表名;
DML
-
添加数据
- 语法:
insert into 表名(列名1,列名2,...列名n) values(值1,,值2,值n);
若表名后不定义列名,则默认给所有列添加值
insert into 表名 values (值1,值2,值n)
除了数字类型,其他类型需要加上单/双引号
-
删除数据
delete from 表名[where 条件]
若不加条件则数据全部删除,这样的删除数据是一条一条删除的,效率很低下,全部删除建议使用
Truncate table 表名;
此方法会删除表再重新建一个一模一样的表
修改数据
update 表名 set 列名1=值1 列名2=值2,....[where 条件]
不加任何条件则更新所有数据
结语
借助idea操作数据库确实很方便,我们在编写代码时无需在不同的软件切换,下一篇是DQL的使用,博文中的错误和不对的地方欢迎大家批评指正。