目录
2.Mysql数据库的SQL语句不区分大小写,关键字建议使用大写
性别的时候定char(1) 存储的是男或者女 ——>
Java中的char和c中的不同,不是ASCII,而是UNICODE码,占两个字节
char a = ’a’ 占两个字节,只能存放一个字母或数字,或一个汉字
一、MYSQL
1.下载
2.添加配置环境MYSQL_HOME,编辑一下Path
3.新建配置文件my.ini
4.初始化MySQL,在管理员的cmd中运行
mysqld –initialize-insecure,没有出现报错信息则说明data目录初始化没有问题,此时查看Mysql目录下就有data目录生成
5.注册MySQL服务,说明计算机上安装好了MySQL服务器了
mysqld –install
6.启动MySQL服务
启动:net start mysql ,停止:net stop mysql
7.修改默认账户密码
mysqladmin –u root password root
8.登录Mysql,这里的mysql指mysql.exe
mysql –uroot –proot
9.退出mysql exit,quit
10.登录参数(连接别人的数据库,需要指定别人的ip和端口)
mysql –u用户名 –p密码 –h要连接的 mysql服务器的ip地址(默认127.0.0.1) –p端口号(默认3306)
11.卸载MySQL
1)管理员运行cmd
2)输入net stop mysql
3)输入mysqld –remove mysql
4)最后删除MySQL目录及相关的环境变量
二、SQL
(结构化查询语言,是一种操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准)
1.可以单行或多行书写,以分号结尾
2.Mysql数据库的SQL语句不区分大小写,关键字建议使用大写
3.注释:-- 或# 或/**/
4.分类
DDL, 数据定义语言,用来定义数据库对象:数据库,表,列等
DML, 数据库操作语言,用来对数据库中表进行增删改
DQL, 数据查询语言,用来查询数据库中表的记录(数据)
DCL, 数据控制语言,用来定义数据库访问权限和安全级别,及创建用户
DML是数据操作语言增删改查数据,
DDL是数据定义语言增删改查表或者数据库
1)DDL数据库操作
1]show databases就能看的mysql安装好之后自带的数据库,
information_schema :mysql中有哪些库、表(存储的是视图,视图是一种逻辑表,并不存在物理的文件,在安装好的data目录里面并不存在对应的文件夹来存数据库)
mysql:存储的最为主要的一些信息(eg:权限,安全)
performance_schema:存储的是mysql中与性能相关的信息
sys:系统相关的信息
2]create database (if not exists) 数据库名;
3]drop database (if exists) 数据库名;
4]使用数据库use 数据库名;
5]查看当前数据库select database();
2)DDL表操作
1]创建Create
create 表名 ( 字段名 数据类型, …, …);最后一个不能加逗号
score double(5,2)说明总长度为5,小数点后保留两位
2]查询Retrieve
查询当前数据库下所有表名称show tables,查询表结构 desc表名
查询指定表的建表语句 show create table 表名;
3]修改Update
alter table 表名 rename to 新表名;
alter table 表名 add 列名 数据类型(长度) [comment 注释] [约束];
alter table 表名 modify列名 数据类型;
alter table 表名 change列名 新列名 新数据类型 [comment 注释] [约束];
alter table 表名 drop列名;
alter table 表名 RENAME TO 新表名;
4]删除Delete
drop table (if exists)表名
3)DML
1]添加insert
insert into 表名(列名1,列名2,…) [添加全部列时不用写列名] values(值1,值2,…), (值1,值2,…),…[添加一组数据时,只需要写需要添加的数据 ]
2]修改update
update 表名 set 列名=值1, 列名=值2,…[where 条件]
注:修改语句如果不加条件,所有数据都会被修改
3]删除delete
delete from 表名 [where 条件]
注:删除语句如果不加条件,所有数据都会被删除
4)DQL
select (distinct[去重复记录]) 字段列表 (as xxx[ as可省略])
from 表名列表
where 条件列表 (注意null值得比较需要用 is /is not这种方式)
group by 分组列表
having 分组后的条件
order by 排序字段 (asc升序[默认]/desc降序)
如果有多个排序条件,当前边的条件值一样时才会根据第二个条件进行排序
limit 分页限定 起始索引[从0开始],查询条目数;
计算公式:起始索引 = (当前页码-1)*每页显示的条数
Tips:MYSQL数据库中分页查询使用limit
Oracle分页查询使用rownumber
SQL Server 分页查询使用top
分组操作,需要用到聚合函数,将一列作为一个整体计算
select 聚合函数名(列表) from 表 注意:null值不参与所有聚合函数运算
分组之后,查询的字段为聚合函数和分组字段,查询其他字段无意义
where和having区别
执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
可判断条件不一样:where不能对聚合函数进行判断,having可以
执行顺序:where > 聚合函数 > having
使用单引号来环绕文本值(大部分也接受双引号),如果是数值,就不要使用引号
between…and…的使用一般是左闭右开的
无法比较 NULL 和 0;它们是不等价的,必须使用 IS NULL 和 IS NOT NULL 操作符来判断
inner join 关键字在表中存在至少一个匹配时返回行