数据库
基础知识
数据库 :存储数据的仓库,数据是有组织的进行存储
数据库管理系统 :操纵和管理数据库的大型软件
SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库的同意标准
常见数据库
Oracle
:收费的大型数据库,Oracle
公司的产品
MYSQL
:开源免费、中小型的数据库。2009SUN
公司被Oracle
收购后开始收费,但还是有免费的社区版本
SQLServer
:MincroSoft
公司收费的中兴数据库。c#
、.net
等语言常使用。
PostgreSQL
:开源免费的中小型数据库,被苹果公司大量使用并替换早期的MySQL数据库。 号称世界上最先进、最安全的开源数据库。
我们选择MySQL的原因:
1.开源、免费
2.功能足够应付web应用开发。
MySQL安装和启动
MySQL官网
-
初始化
initialization
-
安装
install
-
启动
startup
-
重启
reboot
-
-
卸载:
-
-
停止
stop
-
卸载
uninstall
-
-
登录数据库:
在bin
目录下执行:
mysql -u -root -p
解决root无密码登录不了的问题
以不检查权限的方式启动 先停止mysql服务
safe_MySQLd -skip -grant -tables
update MySQL.user set password
=PASSWORD('新密码') where User ='root'
flush privileges;1
解决端口冲突问题:
netstat -ano|findstr 3306
(查询正在执行3306端口的程序,如果有 在任务栏找到对应程序结束任务就可以了)
推出数据库:
exit
quit
登录数据库
mysql [-h 127.0.0.1] [-P 3306] -u root -p
# 参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
将MySQL添加在服务
以管理员的方式启动 cmd
(命令提示窗口),使用命令
进入到[mysql]\bin
,执行如下命令。
mysqld --install (服务名)
如:
mysqld --install Mysql
删除服务命令是:
mysqld --remove 服务名
添加环境变量
将 mysql
的 bin
目录地址添加到 系统环境变量 -->PATH
中
关系型数据库
概念 :建立在关系模型基础上,由多张相互连接的
二维表组成的数据库
数据模型
客户端连接数据库管理系统,数据库管理系统中有多个数据库,数据库中都有多张表
SQL通用语法
单行或者多行书写,以分号结束
2 可以使用空格或者缩进来增强语句的可读性
3 mysql数据库中,SQL语句不区分大小写,关键字建议使用大写
4 注释
单行注释 # –
多行注释, /* */
分类
-
DDL 数据定义语言,用来定义数据库对象(数据库,表,字段)
-
DML 数据操作语言,用来对数据表中的数据进行增删改
-
DQL 数据查询语言,用来查询数据库中表的记录
-
DCL 数据控制语言,用来创建数据库用户,控制数据库的访问权限
DDL 语句
数据库
- 1 查看数据库
show databases; # 查看当前用户可操作的所有数据库
- 2 创建新数据库
CREATE DATABASE [IF NOT EXISTS] 数据库
名字 [DEFAULT CHARSET utf8mb4];
# mysql8 中创建的数据库默认编码是'utf8mb4'
- 3 选择数据库
use 数据库名;
# 选择数据库之后可以在其中创建数据库表
select database();
- 4 删除数据库
drop database 数据库名;
DDL-- 表管理
查看表
show tables;
# 查看当前被选中的数据库中的所有表
数据表中包含若干列,每列需要明确列中存储的数据类型,如字符串、日期时间、证书、浮点数等等。
创建表
CREATE TABLE [IF NOT EXISTS] tab_name(
col_name datatype [COMMENT '注释'],
col_name datatype
)[CHARACTER set 编码格式];
查看表结构
describe 表名;
desc 表名;
show create table 表名;
删除表
drop table 表名;
用户管理
- 查看当前登录的用户
select user() [from dual];
# 查看当前登录的用户;
dual
虚拟表,为了让select语句完整
- 创建新用户
create user 用户名@'ip主机地址
192.168.31.34' identified by '密码';
- 修改密码
alter user 用户名@'ip主机地址'
identified by '密码' password expire
never;
# 修改密码之后不需要重新登录
- 查询用户信息
select user,host from mysql.user;
- 用新用户登录
mysql -u 用户名 [-h ip地址] -p
# 新创建的用户只有登录权限,需要使用管理员账户授权
- 为用户授权
show grants for 用户名@localhost; #查询用户的权限数据库名 . 表名 *.* 数据库名.*
grant all on kfm.carts to txsy@localhost;
# all 代表所有权限
# 授权的新用户需要重新登录才能使用新权限
# 任意ip可以访问
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%';
update mysql.user set host='%' where user='txsy;
flush privileges;
all
:所有权限
select
:查询权限
insert
:插入权限
update
:更新权限
- 删除用户
drop user 用户名@'localhost';