数据库MySQL基础-第一篇

数据库MySQL基础-第一篇

    • 数据库
    • SQL
  • DDL:操作数据库、表
    • 1.操作数据库:CRUD
    • 2.操作表
  • DML:增删改表中数据
  • DQL:数据库查询语言

数据库

1.数据库(DataBase)基本概念:用于存储管理数据的仓库

2.数据库的特点:
1)持久化存储数据,故数据存储在文件中。数据库就是一个文件系统
理解:若把数据存储在内存属于临时性存储,计算机关闭,数据则消失。存储在文件中可持久性存储,计算机关闭,数据也不丢失。
2)方便存储和管理数据,怎么方便存储和管理了呢?也就是特点3。
3)使用了统一的方式操作数据——SQL

3.数据库的安装与卸载
安装:略。。。
卸载:
1)去MySQL的安装目录找到my.ini文件
*复制 datadir=“C:/ProgramData/MySQL/MySQL Server 5.5/Data/”
2)在控制面板中找到卸载程序,卸载MySQL
3)删除C:/ProgramData目录下的MySQL文件夹
注:我们安装的是MySQL服务器软件,安装好后会在本地注册MySQL服务。
①查看所有注册的服务:cmd->输入services.msc->回车
②停止某个服务:cmd先不要回车,以管理员身份运行,然后进入黑窗口,输入net stop mysql,然后回车,否则可能因权限不足停止失败。
③启动某个服务:net start mysql
④MySQL登录:服务启动后就可连接MySQL:mysql -uroot -proot或者mysql -uroot -p然后回车,之后再填密码,就是以密文形式显示,不怕被别人看见啦。
⑤MySQL退出:exit或quit,然后回车
⑥访问别人的MySQL:mysql -h127.0.0.1 -uroot -proot,还有一种比较麻烦的方式:mysql --host=127.0.0.1 --user=root --password=root

4.MySQ目录结构
1)MySQL安装目录
数据库MySQL基础-第一篇_第1张图片2)MySQL数据目录
MySQL数据目录位置,默认在C盘ProgramData
数据库MySQL基础-第一篇_第2张图片
目录结构
数据库MySQL基础-第一篇_第3张图片
数据库MySQL基础-第一篇_第4张图片
计算机代表我们的电脑,安装了MySQL服务器软件之后,就可以称我们的电脑是MySQL服务器了。别人就可以通过ip端口找到我们本机上的MySQL服务器了。可以理解为数据库就是文件夹,表就是文件

SQL

1.什么是sql:
Structured Query Language:结构化查询语言,定义了操作所有关系型数据库的规则,SQL语言可以操作所有关系型数据库。
2.SQL通用语法:
1)SQL语句可以单行或多行书写,以分号结尾。
2)可使用空格和缩进提高程序可读性。
3)MySQL数据库的SQL语句不区分大小写,但关键字建议大写
4)注释:
*单行注释: – 注释内容 或 # 注释内容(不要忘记有空格,# 注释内容是mysql特有)
*多行注释:/注释内容/
3.SQL分类
1)DDL(Data Defination Language)数据定义语言
用来定义数据库对象:数据库、表、列表。关键字:create、drop、alter等
2)DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert、delete、update等
3)DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据),关键字:select、where。
4)DCL(Data Control Language)数据控制语言
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT、REVOKE等。
数据库MySQL基础-第一篇_第5张图片

DDL:操作数据库、表

1.操作数据库:CRUD

1)C(Create):创建
*创建数据库:create database 数据库名 ;
*判断数据库是否存在,存在则不创建:create database (if not exists) 数据库名 ;
*指定数据库编码字符集创建数据库:create database 数据库名称 character set gbk;
*综合sql语句:create database if not exists db4 character set gbk;
2)R(Retrieve):查询
*查询所有数据库名称:show databases;
数据库MySQL基础-第一篇_第6张图片
*查看某个数据库的创建语句:show create database 数据库名;
数据库MySQL基础-第一篇_第7张图片
3)U(Update):修改
*修改数据库字符集:alter database 数据库名 character set utf8;
4)D(Delete):删除
*删除数据库:drop database (if exists) 数据库名;(危险,不建议操作)
5)使用数据库
*查询当前正在使用的数据库名称:select database();
*使用数据库(相当于进入数据库文件夹):use 数据库名称;

2.操作表

1)C(Create):创建
*创建表:create table 表名(
列名1 数据类型1,
列名2 数据类型2,

列名n 数据类型n,
);

注:最后一列不需要写逗号。
*复制表:create table 表名 like 已经存在的表名;
数据库数据类型
数据库MySQL基础-第一篇_第8张图片
补充:timestamp:时间戳类型,包含年月日时分秒,yyyy-MM-dd HH:mm:ss。如果不给这个字段赋值或赋值为null,则默认使用当前的系统时间来自动赋值。
varchar:字符串类型,使用字符串需要指定最大长度,如:name varchar(20);
2)R(Retrieve):查询
*查询某数据库所有表名称:show tables;
*查询表结构:desc 表名;
数据库MySQL基础-第一篇_第9张图片
3)U(Update):修改

-- 修改表名
alter table 原表名 rename 新表名;
-- 修改表字符集
alter table 表名 character set 字符集名称;
-- 添加列
alter table 表名 add 列名 数据类型;
-- 修改列名/类型
alter table 表名 change 原列名 现列名 新的数据类型;
-- 例如:
alter table stu change gender sex varchar(20);
-- 修改列的类型
alter table 表名 modify sex 新的数据类型;
-- 删除列
alter table 表名 drop 列名;

4)D(Delete):删除

-- 删除表:
drop table (if exists) 表名; 

DML:增删改表中数据

1.添加:

  • insert into 表名(列名1,列名2,…,列名n) values(值1,值2,…,值n);
    注意:1)列名和值要一一对应。
    2)如果给所有列添加值,列名可省略。
    3)除了数字类型,其它类型需要用引号,单双引号都可以。
    2.删除:
  • delete from 表名 [where 条件]
    注意:1)若不加条件,删除表中所有数据
    *删除表中所有记录:truncate table 表名;(删除表,然后再创建一个一模一样的空表)
    3.修改
  • update 表名 set 列1=值1,列2=值2,…,列n=值n [where 条件]
  • 注意:1.如果不加任何条件,则会将表中记录全部修改。

DQL:数据库查询语言

1.语法:
select 字段名
from 表名
where 条件列表
group by 分组字段
having 分组之后的条件
order by 排序
limit 分页限定
2.基础查询
1)多字段查询

  • select * from 表名;
  • select 列1,列2,…,列n from 表名;
    2)去除重复
  • select distinct 列1,列2,…,列n from 表名;
    3)计算列
  • select 列1+列2 from 表名;
    注意:如果其中某列为null,运算结果也为null。可以使用函数IFNULL(表达式1,表达式2)。例如:select IFNULL(math,0)+IFNULL(english,0) from stu;
    4)起别名
    select IFNULL(math,0)+IFNULL(english,0) as 总分 from stu;或者select IFNULL(math,0)+IFNULL(english,0) 总分 from stu;
    注:as可以省略。
    3.条件查询
    1)where后跟条件
    2)运算符
-- 查询年龄不等于20岁
select * from stu where age !=20;
select * from stu where age<>20;
-- 查询年龄大于等于20,小于等于30岁
select * from stu where age >=20 and age <=30;
select * from stu where age between 20 and 30;
select * from stu where age >=20 &&age <=30;-- 不推荐
-- 查询年龄为19,22,25岁的人
select * from stu where age = 19 or age = 22 or age =25;
select * from stu where age IN (19,22,25);
-- 查询英语成绩为null的人
select * from stu where english IS NULL;
-- 注意:null不能用“=”判断。
-- 查询英语成绩不为null的人
select * from stu where english IS NOT NULL;
-- 模糊查Like**
-- 查询姓马的
select * from stu where name like "马%";
-- 查询姓名第二字是化的
select * from stu where name like "_化%";
-- 查询姓名是三个字的人
select * from stu where name like "___";
-- 查询姓名中包含马的
select * from stu where name like "%马%";

文章内容总结自黑马教学视频

你可能感兴趣的:(MySQL,关系型数据库,数据库)