数据库学习
1、基本概念
定义:数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
特点:
- 持久化存储数据
- 方便存储和管理数据
- 使用了统一的方式操作数据库 —SQL(结构化查询语言)
常用的数据库软件:
2、Mysql安装和卸载
3、Mysql目录结构
4、SQL基本语法
1. 可以单行或者多行书写 ,以分号结尾
2. 可以用空格和tab增强语句的可读性
3. 不区大小写 (默认大写)
4. 注释
单行注释:
-- 注释内容
# 注释内容
多行注释 /* 注释内容 */
SQL启动流程
当 MySQL 服务开启后,就可以通过客户端来登录 MySQL 数据库了。在 Windows 操作系统下可以使用 DOS 命令登录数据库,本节将介绍使用命令方式登录 MySQL 数据库的方法。
登录 MySQL 数据库的具体操作步骤如下:
步骤 1):单击“开始”→“Windows 系统”→“命令提示符”,如图所示。
步骤 2):打开命令行提示符界面,输入命令cd C:\Program Files\MySQL\MySQL Server 5.7\bin\
,按回车键,如图所示。
步骤 3):在命令提示符界面可以通过登录命令mysql -h 127.0.0.1 -u root -p
连接 MySQL 数据库。
按回车键,系统会提示输入密码(Enter password),这里输入配置向导中设置的密码,验证正确后,即可登录 MySQL 数据库,如图所示。
提示:mysql 为登录命令,-h 后面的参数是服务器的主机地址,在这里客户端和服务器在同一台机器上,所以输入 localhost 或者 IP 地址;-u 后面跟登录数据库的用户名称,在这里为 root;-p 后面是用户登录密码。
在 DOS 窗口下运行该命令后,系统会提示输入密码。密码输入正确以后,即可登录到 MySQL 数据库。
可以在 mysql 命令中直接加上密码,该命令为 mysql -h localhost -u root -proot。这里的 -p 后面的 root 就是密码。此处特别注意 -p 和密码之间没有空格。如果出现空格,系统将不会把后面的字符串当成密码来对待。
步骤 4):登录成功后进入 MySQL 初始界面,会出现“Welcome to the MySQL monitor”的欢迎语,然后下面还有一些说明性的语句,如图所示。
这些说明性语句介绍如下:
- Commands end with; or\g:说明 mysql 命令行下的命令是以分号(;)或“\g”来结束的,遇到这个结束符就开始执行命令。
- Your MySQL connection id is 3:id 表示 MySQL 数据库的连接次数。
- Server version: 5. 7.29-log MySQL Community Server(GPL):Server version 后面说明数据库的版本,这个版本为 5.7.29。Community 表示该版本是社区版。
- Type ‘help;’ or ‘\h’ for help:表示输入”help;“或者”\h“可以看到帮助信息。
- Type ‘\c’ to clear the current input statement:表示遇到”\c“就清除前面的命令。
提示:当窗口中出现如上图所示的说明信息,命令提示符变为“mysql>”时,表明已经成功登录 MySQL 服务器,可以开始对数据库进行操作了。
通过命令行客户端软件登录
当 MySQL 软件安装完后,一般都会安装一个简单命令行使用程序(MySQL Command Line Client),该客户端没有流行的用户界面。
选择”开始“→”程序“→”MySQL“→”MySQL 5.7 Command Line Client “,打开 MySQL Command Line Client 进入提示输入密码的界面,如图所示。
输入正确的密码后,登录到 MySQL 软件,如果以这种方式登录 MySQL,需要保证 MySQL 服务处于启动状态
5、SQL分类]
1.数据定义语言(DDL)----操作数据库和表,定义数据库对象
1. 操作数据库 : CRUD
1.1 C (create):创建
create database db1; -- 创建名称为: db1 的新数据库
create database if not exists db1; -- 判断是否存在这个数据库,不存在则创建一个
create database if not exists db1 character set gbk; -- 判断创建的同时设置字符集
1.2 R (Retrieve) : 查询
show databases; -- 查询显示所有数据库名称
show databases; -- 查询显示所有数据库名称
1.3 U (Update):修改
alter database db1 character set utf; -- 修改数据库字符集
1.4 D (Delete) :删除
drop database db1 ; -- 删库跑路!!
drop database if exists db1 -- 判断数据库存在,存在就删除
-- 使用数据库
select database();
use db1;
1. 操作表 : CRUD
1.1 C (create):创建
create table db1(
列名 数据类型1,
列名 数据类型2,
列名 数据类型1 -- 最后一列不加逗号!!!否则报错
); -- 创建名称为: db1 的新表
-- 数据类型
1. int :整数类型
age int ,
2. double :小数类型
score double(4,1),
3. date 日期,只包含年月日 yyyy-MM-dd
4. datetime :日期,只包含年月日时分秒 yyyy-MM-dd HH:mm:ss
5. timestamp:时间戳类型 只包含年月日时分秒 yyyy-MM-dd HH:mm:ss
如果不给这个字段赋值,默认使用当前系统时间来自动赋值
6. varchar :字符串
name varchar(20), -- 名字最大20个字符
create table 表2 like 表1;
1.2 R (Retrieve) : 查询
show tables; -- 查询当前正在使用的数据库的所有表名称
desc 表名; -- 查询表结构
1.3 U (Update):修改
-- 修改表名
alter table 表名 rename to 新表名;
-- 修改表的字符集
alter table 表名 character set utf8;
-- 修改列
alter table 表名 add 列名 数据类型;
alter table 表名 change 列名 新列名 数据类型; -- 改变列的名字和数据类型
alter table 表名 modify 列名 数据类型; -- 只更改数据类型
alter table 表名 drop 列名 -- 删除指定列
1.4 D (Delete) :删除
drop table 表名; -- 删除表
2.数据操作语言(DML)-----对数据库中表中的数据进行增删改
-- 添加数据
insert into 表名(列名1,列名2...) values(value....);
3.数据查询语言(DQL)-----数据查询
4.数据控制语言(DCL)-----数据控制语言,用来定义数据库的访问权限和安全级别,即创建用户