SQL

ningbaoer / 2023-05-03 / 原文

数据库 DB
作用 电子文件柜 存储文件 进行增删改查等操作 多个用户共享

DB
关系型数据库
Mysql
Microsoft SQL Server
Oracle数据库

非关系型数据库 noSQL
键值(key-value)数据库

DBA:数据库管理员
数据库的设计 测试

DBMS: 数据库管理系统
用于建立,管理和控制 ,数据维护 保证数据安全性 等

DBAS: 数据库应用系统
DB + DBA+ DBMS +硬件平台+软件平台+应用软件+应用界面
SQL:结构化查询语言
特殊目的的编程
结构化查询语言(Structured Query Language)简称SQL,
是一种特殊目的的编程语言,
是一种数据库查询和程序设计语言,
用于存取数据以及查询、更新和管理关系数据库系统;
同时也是数据库脚本文件的扩展名。

 


net start mysql 开始
net stop MySQL 停止
P 默认3306
登录 mysql -u账户 -p密码

数字 int
字符串 varchar
浮点型 double
日期类型 date yyyy-MM-dd
字符串 char 0~255

 

 


SQL 1.事务 2.存储引擎 3. 索引 4.SQL优化 5. 锁
MySQL运维 1. 日志 2. 主从复制 3. 读写分裂 4.分库分表

基础
1.SQL
2.函数
3.约束
4.多表查询
5.事务

MySQL
数据模型 。客户端 -> DBMS ->数据库 ->表
表才是存储数据的!

SQL
SQL通用语法
SQL分类
1.DDL
2.DML
3.DQL
4.DCL

SQL通用语法:
1.SQL可以单行或多行书写 分号结尾
2.SQL语句可以使用空格 /缩进来增强可读性
3.大小写不区分:
4.单行注释 -- 或则 #
多行注释 /* */

SQL分类:
1.DDL :数据定义语言 数据库 表 列
2.DML: 数据操作语言 对表中的数据 增删改查
3.DQL: 数据库表中的数据 查询

4.DCL : 数据控制语言 创建用户 控制用户权限


.DDL:数据库操作
查询 SHOW DATABASES; show databases;
查询当前数据库 select database();

创建 create database 名称;
创建cat数据库 指定utf8mb4
create database cat default charset utf8mb4;

删除:drop database 名称;
删除 drop database if exists 名称;

使用 use 数据库名;


1.DDL:表操作 查询
1.show tables ;use进入数据库后 查询当前数据库的所有表
2.desc 表名;查询表结构
3.show create table 表名; 查询指定的表的建表语句

1.DDL:表操作 创建
1.create table 表名字(
字段1 空格 字段1类型[comment 字段1注释],
字段2空格 字段2类型[comment 字段2注释],
字段3空格 字段3类型[comment 字段3注释]
)[comment 表注释];

2.drop table 表名字; 删除表

3. desc 表名字; 查询表结构

对列的增删改查

1.添加列
2.删除列


DML 数据操作语言
约束两点
primary key 主键 值唯一 并且不能为空
auto_incre,emt 自动增长 数据可以由Mysql自己维护

增加 insert into 表(字段1) values (值1)

更新 updata 表名 set age = 25 ,address = '北京', where id = '3333'
删除 delete form 表名 where 条件;一条一条删
truncate table 表名;删表,按原来的表结构再弄出来

 


DQL 查询 得到都是虚表 不会改动真实数据
select * from 表名字; 用* 降低执行效率
select 列名字, 列名字 from 表名字;

select distinct 列名字, 列名字 from 表名字;去掉重复

select * from 表名字 as p ;表的别名

select 列名字 AS 新名字,列名字 as 新名字 from 表名; 列的起名字

查询特例
select * from 表名字 where 列名字 >200 ;
select * from 表名字 where 列名字 in (300,200,800) ;

select * from 表名字 where 列名字 between 440 and 3000 ;


重点 模糊查询 like

select * from 表名字 where pname like ‘下划线霸’ ;

select * from 表名字 where pname like ‘下划线霸 %’ ;


select * from 表名字 where pname like ‘%霸 %’ ;

NULL 查询
select * from 表名字 where 列名字 is null ;

select * from 表名字 where 列名字 is not null ;


降序 desc ;
命令:select * from 职工 order by 工资 desc ;

升序asc
命令:select * from 职工 order by 仓库号 asc ,工资 desc ;


求总的仓库面积
命令:select sum(面积) 总面积 from 仓库 ;