MySQL 1.0(初识MySQL)
什么是数据库
数据库 (DB, DataBase)
数据库分类
关系型数据库:(SQL)
MySQL,Oracle,DB2
通过表和表之间,行和行之间的关系进行数据存储
非关系型数据库:(NoSQL)
Redis,MongoDB
菲关系型数据库,对象存储,通过对象的自身属性来决定
DBMS(数据库管理系统)
数据库管理软件
操作数据库
MySQL 数据量不区分大小写
1、创建数据库
CREATE DATABASE 数据库名;
2、删除数据库
DROP DATABASE ;
3、选择数据库
USE 数据库名;
4、查看数据库
SHOW DATABASE; --查看所有数据库
数据库列的类型
数值(常用)
int标准的整数4个字节
字符串(常用)
char字符串固定大小0~255
varchar可变字符串 0~65535 常用变量String
日期(常用) java.utile.Date
dateYYYY-MM-DD日期
timeHH:mm:ss时间格式
datetimeYYYY-MM-DD HH:mm:ss最常用的时间格式
null
字段属性
Unsigned
无符号的整数
声明该列不能声明为负数
zerofill
0填充的
不足的位数用0来填充int(3) 005
自增
自增,+1(默认)
可以自定义设计主键的起始值和步长
NULL not null
如果不给他赋值,就会报错!
sex,默认值为如果不指定其列值,则会有默认值!
创建数据库表
CREATE TABLE table_name (column_name column_type);
删除数据库表
DROP TABLE table_name ;
数据库关联
外键
为表添加外键的语法:
alter table 表名 add constraint 外键名称
foreign key (外键字段名称) references 外表表名(主键字段名称)
删除有外键的表的时候,必须要先删除从表,再删除主表
增删改查
1、插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES ( value1, value2,...valueN )
2、删除数据
DELETE
FROM table_name
[WHERE Clause]
3、更新数据
UPDATE table_name
SET field1=new-value1, field2=new-value2
[WHERE Clause]
4、查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
查询 - 别名 => AS
SELECT COUNT('姓名:',name) AS 别名
FROM table_name
注意: 如果数据是字符型或者日期,必须使用单引号或者双引号
去重
SELECT DISTINCT name
FROM table_name
Like子句
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE 'value1' [AND/ OR] filed2 = 'value2'
MySQL 排序
SELECT field1, field2,...fieldN
FROM table_name1, table_name2...
ORDER BY field1 [ASC /DESC]=>[默认 ASC]
GROUP BY 语法
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
MySQL WHERE 子句
操作符
描述
实例
=
等号,检测两个值是否相等,如果相等返回true
(A = B) 返回false。
<>, !=
不等于,检测两个值是否相等,如果不相等返回true
(A != B) 返回 true。
>
大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true
(A > B) 返回false。
<
小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true
(A < B) 返回 true。
>=
大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true
(A >= B) 返回false。
<=
小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true
(A <= B) 返回 true。
分页和排序
排序 : 升序 ASC 降序DESC
--ORDER BY
分页
--分页,每页显示的数据(几条)
--语法: limit 当前页,页面大小
LIMIT 1,5 1:起始 5:条数
语法: limit(查询起始下标,pageSize)