一、数据库分类
● MySQL
● SQL Server
● Oracle
● Sybase
● DB2
● 等等…
RDBMS:关系数据库管理系统(Relational Database Management System)的特点:
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
二、非关系型数据库(NoSQL)
NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。
● MongoDB
MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。
● Redis
Redis 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。目前由VMware主持开发工作。
三、SQL语句
1.2 语法要求
l SQL语句可以单行或多行书写,以分号结尾;
l 可以用空格和缩进来来增强语句的可读性;
l 关键字不区别大小写,建议使用大写;
四、常用类型:
l int:整型
l double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
l decimal:浮点型,在表示钱方面使用该类型,因为不会出现精度缺失问题;
l char:固定长度字符串类型;
l varchar:可变长度字符串类型;
l text:字符串类型;
l blob:字节类型;
l date:日期类型,格式为:yyyy-MM-dd;
l time:时间类型,格式为:hh:mm:ss
l datatime:时间戳类型;
五、------------------
5、1 创建表:
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
);
例如:
CREATE TABLE stu(
sid CHAR(6), # 默认 null,(可以为空)
sname VARCHAR(20),
age INT,
gender VARCHAR(10)
);
5、2 删除表: drop table 表名;
drop table studentinfo;
六、操作数据库:
① 插入数据: (insert into 是固定句式)
insert into studentinfo (name,age,sex)values(‘老王’,‘男’,‘12’) – 注意用 单引号 包裹起来。
② 删除数据:
delete from studentinfo where name=‘老王’ – 若 有三个老王 则 都删除。
③ 修改数据:
update studentinfo set name='花花‘ where name=‘老王’ – 老王 修改成 花花
– show databases; – 显示当前MySQL中所有数据库
– user mysql; – 进入MySQL数据库
– show tables; – 显示MySQL数据库中所有的表
select user,host from user – 查询MySQL中user中的user和host
七、
数据库操作:
1.显示数据库
- show databases
2.进入指定数据库
- use 数据库名称 (已修改,谢谢)
3.创建数据库
- create databases 数据库名称
4.删除数据库
- drop databases 数据库名称
八、
① -----------------------------
两行代码同时运行,就会出现两个结果。两条代码一起运行记得加分号!!
② between 数 and 数 :谁谁之间,包含谁
例如:
– select * from student0 where p_sal >=5000 and p_sal <= 8900;
– select * from student0 where p_sal between 5000 and 8900
错的:select * from student0 where 5000 <= p_sal <=8900
③ 按什么排序:asc / desc
select 要显示的字段 from 表名 | order by 要排序的字段名 asc(排序方式)
select * from student0 | order by p_sal asc
asc 正序(默认),小的在上面
desc 倒序
④ 两行和一行:
select p_leader from student0 where p_age = ‘21’ 结果是:p003
select * from student0 where p_id = ‘p003’ 结果是:id为p003的岳不群
两条代码一起运行记得加分号!!
select * from student0 where p_id = (select p_leader from student0 where p_age = ‘21’)
将第一行代码的结果传入第二行代码的条件中。
九、
1、用户管理:
创建用户
- create user ‘用户名’@‘IP地址’ identified by ‘密码’;
删除用户
- drop user ‘用户名’@‘IP地址’;
修改用户
- rename user ‘用户名’@‘IP地址’; to ‘新用户名’@‘IP地址’;;
修改密码
- set password for ‘用户名’@‘IP地址’ = Password(‘新密码’)
PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
2、授权管理
show grants for ‘用户’@‘IP地址’ – 查看权限
grant 权限 on 数据库.表 to ‘用户’@‘IP地址’ – 授权
revoke 权限 on 数据库.表 from ‘用户’@‘IP地址’ – 取消权限
关于权限:(等等)
all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
…
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
1、数据库:
概念:存储数据,以文件的形式存储
好处:1.永久保存数据(理论上)
2.数据共享
3.可以通过命令进行数据的精准查找
2、数据库分类:
1.关系型数据
mysql oracle sql server db2 …
特点:以表格形式进行数据库存储
2.非关系型数据(NOSQL数据库)
MongoDB redis
3、MySQL介绍:
优点:免费,可靠,支持千万级的数据吞吐量
环境安装:安装包方式(next…)
解压方式安装(http://www.cnblogs.com/wangfengming/p/7880595.html)
客户端安装
连接数据:mysql -u root -p 回车
输入密码 ******
数据库的操作:
①创建:
create database 库名; (不带 s)
②使用库:
use 库名 ;
③删库:
drop database 库名; (不带 s)
④显示当前用户下所有的数据库:
show databases; (带 s)
4、表操作:
①创建:
create table 表名(
字段名 类型(长度) 是否为空 是否为主键 ps:主键:非空,唯一)
②删表:
drop table 表名;
③添加表的字段
alter table 表名 add 字段名称 类型(长度) 约束条件;
④删除表的字段
alter table 表名 drop 字段名称;
⑤修改表的字段:
alter table 表名 change 旧字段 新字段 类型(长度) 约束条件
— 记得新字段设置的 数据类型 长度等 要符合 旧数据
⑥查看表:
desc 表名
5、SQL 增删改查:
增:insert into 表名 values(要求:字段的位置与个数必须一一对应)
insert into 表名 (表字段 名称,多个以 ’,‘ 间隔) values (字段值,多个以 ’ ,‘ 间隔)
insert into 表名2 (select * from 表名1)
insert into 表名2 (name,age) values (select name,age from 表名1)
改:
updata 表名 set 字段名 = ‘值’ where 字段名 = ‘条件值’
updata 表名 set 字段1 = ‘值1’ ,字段2 = ‘值2’ where 字段1 = ‘条件1’ and 字段2 = ‘条件2’
删:(删值,字段的值)
delete from 表名 where 条件;
delete from 表名;自增长什么鬼?##################-- 清空啊也是
清空表:
truncate 表名 ;
真删假删。######################
查:(核心)
1.select * from 表名; * 表示 通配符 ps:最好把 * 替换成具体字段。
2.条件查询:select * from 表 where 字段1 = ‘值1’ where 后可以用逗号隔开条件吗!!!不可以!!!
3.逻辑查询:select * from 表 where 字段1 != 值1 and z2 >=v2 逻辑运算符: = ,<,>,!=,<>,<=,>=
4.模糊查询: ‘%ppp%’ 可以查到以ppp结尾的吗 !!可以的!开头也能查到。
5.集合查询:select * from 表名 where 字段 in (‘值1’,‘值2’,‘值3’)
6.区间查询:where 字段 between 值1 and and 值2 (包含值1,2)
7.排序:desc/asc 倒序不会,正序默认,哈哈哈。
select * from 表 order by 字段 desc;
8.嵌套查询:
select * from 表 where 字段 in (select 字段 from 表 where id=’值1‘)
ps: () 表示优先执行。
‘=’ ,值唯一,in :值为集合
Na:
default 默认值
not null 非空
primary key 主键
auto_increment 自增
coalesce (a,b,c) a空b,b空c
聚合函数:
sum()
avg()
max()
min()
group by 字段名 :分组
order by 字段名 desc/asc :排序
- 风的季节 — Soler