概述
1.什么是数据库(DataBase)
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
2.什么是数据库管理系统 (Database Management SystemDBMS)
一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。
3.数据库的分类
4.数据库与数据库管理系统的关系
MySQL 常用操作
连接和断开链接
mysql -u root -p --连接数据库 p后不可有空格,也可在p之后直接输入密码,但不安全
Enter password: ******
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; -- 修改用户密码
flush privileges; -- 刷新权限
show databases; -- 查看所有的数据库
mysql> use school -- 切换数据库 use 数据库名 Database changed
show tables; -- 查看数据库中所有的表
describe student; -- 显示数据库中所有的表的信息
create database westos; -- 创建一个数据库
exit; --退出连接
-- 单行注释(SQL 的本来的注释)
参数 | 描述 |
---|---|
-h | 地址,如果本地可以省略 |
-u | 用户名 |
-p | 密码 |
数据库对象
对象名称 | 对应关键字 | 描述 |
---|---|---|
表 | table | 表是储存数据的逻辑单元,以行和列的形式存在 |
数据字典 | 系统表,存放数据库相关信息 | |
约束 | constraint | 执行数据校验的规则 |
视图 | view | 一个或多个数据表里数据的逻辑显示 |
索引 | index | 用于提高查询性能,相当于书的目录 |
函数 | function | 用于完成一次特定的计算,具有一个返回值 |
存储过程 | procedure | 用于完成一次完整的业务处理,没有返回值,但可以通过传出参数将多个值传给调用环境 |
触发器 | trigger | 相当于一个事件监听器 |
创建和使用数据库
SHOW DATABASES; # 只显示有权限进入的数据库
USE test # 选择数据库
GRANT ALL ON menagerie.* TO ‘your_mysql_name’@‘your_client_host’; # 授权使用数据库
创建和使用数据库
数据库大小写敏感,而SQL语句不敏感
CREATE DATABASE menagerie
;
USE menagerie
# 进入数据库
mysql -h host -u user -p menagerie
# 连接到指定数据库,不然每次都要使用use
来进入
创建表
SHOW TABLES;
# 查看所有表
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); # 创建表
DESCRIBE pet;
# 查看表
导入数据
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet;
# 将txt文件导入数据表
LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
LINES TERMINATED BY '\r\n'; # 指定行分隔符
INSERT INTO pet
VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); # 插入一行
查询数据
获取所有数据
SELECT * FROM pet;
查询指定行
SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
查询指定列
SELECT name, birth FROM pet;
指定列排序
SELECT name, birth FROM pet ORDER BY birth DESC;
练习表的制作
字段名称 字段类型 说明
sid char(6) 学生学号
sname varchar(50) 学生姓名
age int 学生年龄
gender varchar(50) 学生性别
CREATE TABLE stu (
sid CHAR(6),
sname VARCHAR(50),
age INT,
gender VARCHAR(50)
);
INSERT INTO stu VALUES('S_1001', 'liuYi', 35, 'male');
INSERT INTO stu VALUES('S_1002', 'chenEr', 15, 'female');
INSERT INTO stu VALUES('S_1003', 'zhangSan', 95, 'male');
INSERT INTO stu VALUES('S_1004', 'liSi', 65, 'female');
INSERT INTO stu VALUES('S_1005', 'wangWu', 55, 'male');
INSERT INTO stu VALUES('S_1006', 'zhaoLiu', 75, 'female');
INSERT INTO stu VALUES('S_1007', 'sunQi', 25, 'male');
INSERT INTO stu VALUES('S_1008', 'zhouBa', 45, 'female');
INSERT INTO stu VALUES('S_1009', 'wuJiu', 85, 'male');
INSERT INTO stu VALUES('S_1010', 'zhengShi', 5, 'female');
INSERT INTO stu VALUES('S_1011', 'xxx', NULL, NULL);