数据库学习笔记_01

本文介绍了数据库和SQL的基础概念,包括数据定义语言DDL(创建、修改、删除数据库和表)、数据操作语言DML(添加、删除和修改数据)和数据查询语言DQL(基础和条件查询)。涵盖了MySQL常用语法、数据类型和实例操作,适合SQL初学者学习。
摘要由CSDN通过智能技术生成

数据库(DB)

概念:Database,用于存储和管理数据的仓库
数据库特点:
1、持久化存储数据。其实数据库就是一个文件系统
2、方便存储和管理数据
3、使用同样的方式操作数据库–SQL
常见的数据库软件:OracleMySQL、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、DMLData Manipulation Language)数据库操作语言
用来对数据库中列表的数据进行增删改 insert,delete,update
3、DQLData Query Language)数据库查询语言
用来查询数据库中表的记录(数据) select,where
4、DCLData 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表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:
图1
图2:
图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 '___';//三个下划线

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

★Object★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值