数据库学习笔记

数据库学习笔记,第1张

数据库学习笔记

文章目录
  • 数据库(DB)
  • SQL
    • SQL通用语法
    • SQL的分类
      • DDL
      • DML
      • DQL
        • 1. 基础查询
        • 2. 条件查询

数据库(DB)

概念:Database,用于存储和管理数据的仓库
数据库特点:
1、持久化存储数据。其实数据库就是一个文件系统
2、方便存储和管理数据
3、使用同样的方式 *** 作数据库–SQL
常见的数据库软件:Oracle、MySQL、Microsoft SQL Sever、DB2……(用的比较多的是前面两种)

SQL

Structured Query Language:结构化查询语言。其实就是他定义了 *** 作所有关系型数据库的原则。

SQL通用语法

1、可以以单行或多行书写,以分号结尾
2、MYSQL数据库的SQL语句不区分大小写,关键字建议使用大写
3、3种注释:
*单行注释:-- (英文的两个横杠一个空格)注释内容 或 #(有没有空格都可以) 注释内容(mysql特有)
多行注释:/ 注释 */

SQL的分类

1、DDLData Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:creat,drop,alter
客户端 *** 作数据库和表
2、DML(Data Manipulation Language)数据库 *** 作语言
用来对数据库中列表的数据进行增删改 insert,delete,update
3、DQLData Query Language)数据库查询语言
用来查询数据库中表的记录(数据) select,where
4、DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户 GRANT,REVOKE

图示:

DDL

1、 *** 作数据库:CRUD
(1) create:创建
create database 数据库名称;(已有会报错)
create database if not exists 数据库名称;
create database 名称 character set gbk;(设置成gbk,默认是UTF-8)

(2) retrieve:查询
*查询所有数据库名称:show databases
*查看某个数据库的字符集:查看某个数据库的创建语句
show create databases 数据库名称;

(3) update:修改
*修改数据库的字符集
alter database 数据库名称 character set 字符集名称(utf-8,gbk)

(4) delete:删除

*删除数据库
drop database 数据库名称(千万千万不要删除SQL里面的mysql数据库)
if exists和前面一样

*使用数据库
use 数据库名称
*查询当前正在使用的数据库名称
select database();

2、 *** 作表

*create:创建
语法:
create table 表名(
列名1 数据类型1,
列名n 数据类型n(没有逗号)
);

create table student(
Id int,
Name varchar(32),
Score double(4,1),
Birthday_time date,
Insert_time timestamp//注意这里没有逗号
);

数据类型

int //整数类型
age int 
double //小数类型 
score double() //里面的参数(数字)表小数点后的位数一共有多少位
date //日期,只包含年月日,yyyy-MM-dd
datetime //日期 yyyy-MM-dd HH:mm:ss
timestamp//时间错类型yyyy-MM-dd,如果将来不给这个字段赋值,或赋值为null,则默认使用当前的	系统时间来自动赋值
varchar//字符串
name varchar(20)//姓名最大为20个字符

create table stu like student;复制表

*retrieve:查询
查询某个数据库中所有的表的名称
show tables;

查询表结构
desc 表名;

*update:修改

1、修改表名
alter table 表名 rename to 新的表名
2、修改表的字符集
alter table 表名 character set 字符集名称
3、添加一列
alter table表名 add 列名 数据类型; 
4、修改列名称 类型
alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;(只改数据类型)
5、删除列
alter table 表名 drop 列名;

*delete:删除
*drop table 表名(if exists同上)

DML

1、添加数据
语法

insert into 表名(列名1,列名2,……列名n)values(值1,值2,……值n);
字符串用单引号双引号都可以
注意:**列名和数值要一一对应**
如果表名后面没接列名,则默认给所有列名添加值
insert into 表名 values(值1,值2,……值n);

2、删除数据
语法

delete from 表名where 条件;
delete from student where id=1;
truncate table 表名; -- 删除表,然后再创建一个一模一样的空表

注意:如果不加条件 会把表中所有数据都删除 不推荐使用,有多少条数据就会行多少次

3、修改数据
语法

update 表名 set 列名1=值1,…… where 条件//一次只能改同一行上的

注意:如果不加任何条件,该列的所有数据都会改变

DQL

语法

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

stu表(1)多个字段的查询`

SELECt NAME,math,chinese FROM stu;//同时查询3列

(2)去除重复

SELECt * FROM stu;
SELECt address FROM stu;//不会筛掉重复的部分,见图1
SELECt DISTINCT address FROM stu;//会筛掉重复的部分,见图2

图1:

图2:

(3)计算列

SELECt NAME,math,chinese,math+IFNULL(chinese,0) FROM stu;//计算两科的总分并显示再查询结果中
//IFNULL(chinese,0)是因为在你创建表时某个chinese没有被赋值,其会变成null,无法做运算,得把它变成0,math的也是

(4)起别名

SELECt NAME,math,chinese,math+chinese 总分 FROM stu; // 总分前可以加 AS,把分数总和的那一列命名为“总分”
2. 条件查询

where字句后跟条件
运算符

<,>, <=, =, <>(不等于,也可以用 !=)
BETWEEN……AND
IN
LIKE 模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL
and 或 &&
or 或 ||
not 或 |

-- 查询年龄在20到30之间的
SELECt * FROM stu WHERe age >=20 && age <=30;//方式1
SELECt * FROM stu WHERe age >=20 AND age <=30;//方式2
SELECt * FROM stu WHERe age BETWEEN 20 AND 30;//方式3
-- 查询年龄为17、18、22的信息
SELECt * FROM stu WHERe age = 17 OR age = 18 OR age = 22;//简单粗暴
SELECt * FROM stu WHERe age IN (17,18,22);//主要记住这种
-- 查询语文成绩为null
SELECt * FROM stu WHERe chinese = null;//不正确!!!,null值不能使用等号或者不等号来判断
SELECt * FROM stu WHERe chinese IS NULL;//这样才行
-- 查询不为null的
SELECt * FROM stu WHERe chinese IS NOT NULL;
-- 查询姓马的有哪些  like
SELECt * FROM stu WHERe NAME LIKE '马%';//%表多个任意字符
-- 查询姓名第二个字是化的人
SELECt * FROM stu WHERe NAME LIKE "_化%";//单引号双引号都可以
-- 查询姓名中含马的人
SELECt * FROM stu WHERe NAME LIKE "%马%";
-- 查询姓名是3个字的人
SELECt * FROM stu WHERe NAME LIKE '___';//三个下划线

笔记内容来源于黑马程序员教学视频,写这些仅是为了加深自己的记忆,待续……

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/4000553.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-22
下一篇 2022-10-22

发表评论

登录后才能评论

评论列表(0条)

保存