MySQL基础(一)SQL基础

2023-10-30

DDL(Data Definition Languages)数据定义语言,常用关键字包括create、drop、alter等

0.连接数据库
$mysql -u root -p
connection id 表示的是连接次数


1.创建数据库

CREATE DATABASE dnname

2.默认的数据库
information_schema:主要存储了系统中的一些数据库对象信息,如用户表信息、列信息、权限信息、字符集信息、分区信息等
cluster:存储系统的集群信息
mysql:存储了系统的用户权限信息
test:系统自动创建的测试数据库,任何用户都可以使用

3.选择数据库
USE dbname

4.删除数据库
drop database dbname

5.创建表
CREATE TABLE tablename(
column_name column_type constrains,
column_name column_type constrains
)

6.查看表定义
DESC tablename

7.删除表
DROP TABLE tablename

8.修改表
1)修改表字段类型
ALTER TABLE tablename MODIFY[COLUMN] column_definition[FIRST|AFTER col_name]
alter table student modify name varchar(20);
2)增加表字段
ALTER TABLE tablename ADD[COLUMN] column_definition[FIRST|AFTER col_name]
alter table student add column age int(3);
3)删除表字段
AlTER TABLE tablename DROP[COLUMN] col_name
alter table student drop column age;
4)字段改名
ALTER TABLE tablename CHANGE[COLUMN] old_col_name column_definition[FIRST|AFTER col_name]
alter table student change age age1 int(4)
注意:change 和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便。但是change的优点是可以修改列名称,modify则不能。
5)修改字段排列顺序
前面介绍的字段增加和修改语法(ADD/CHANGE/MODIFY)中,都有一个可选项first|after column_name,
这个选项可以用来修改字段在表中的位置,ADD增加的新字段默认是加在表的最后位置,而CHANGE/MODIFY默认都不会改变字段的位置

#将新增字段birth date 加在name 后
alter table student add birth date after name;
#修改字段age,将它放在最前
alter table student modify age int(30 first;

9.更改表名
ALTER TABLE tablename RENAME [TO]
new_tablename
alter table student rename stu

DML(Data Manipulation Languages)数据操纵语句,常用的关键字包括insert、delete、update等

 
  

 1.插入记录

INSETR INTO tablename (field1,field2,...fieldn) VALUES (value1,value2,...value3);
字段与value一 一对应,可空字段,非空但是含有默认值的字段,自增字段,可以不用再insert后面字段列表和values中填写;可以一次插入多条记录,每条记录之间用逗号隔开
2.更新记录
UPDATE tablename SET field1=value1,field2=value2,...fieldn=valuen WHERE [CONDITION]
3.删除记录
DELETE FROM tablename [WHERE
CONDITION]
4.查询记录
SELECT * FROM tablename[WHERE CONDITION]
1)查询不重复的记录
select distionct name from student;
2)条件查询
select * from student where sid=1;
3)排序和限制
SELECT * FROM tablename[WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],..fieldn [DESC|ASC]]
select * from student order by name; #默认ASC 升序

LIMIT关键字显示部分记录
SELECT * FROM tablename [LIMIT offset_start,row_count];
offset_start 表示记录的起始偏移量,默认为0,所以可以直接写行数
row_count 表示显示的行数

4)聚合
SELECT [field1,field2,...fieldn] fun_name
FROM tablename
[WHERE where_condition]
[GROUP BY field1,field2,...fieldn]
[WITH ROLLUP]
[HAVING where_condition]
func_name表示要做的聚合操作,聚合函数,如SUM,COUNT(*),MAX(),MIN()
group by关键字表示要进行分类聚合的字段
WITH ROLLUP 是可选语法,表明是否对分类聚合后的结果进行再汇总
HAVING 关键字表示对分类后的结果再进行条件过滤

5)表连接
内连接:
仅选出两张表中的互相匹配的记录

外连接(左连接,右连接)
  左连接:
包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录


  右连接:
包含所有右边表中的记录甚至是左边表中没有和它匹配的记录


6)子查询
当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询,用于子查询的关键字主要包括
in、not in、=、!=、exists、not exists


将两张表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候可以使用 union,union all 关键字来实现
UNION和UNION ALL的区别:

union all直接把记录合并在一起
union 合并后的结果去除重复记录DISTINCT

 

DCL(Data Control Language)数据控制语句,常用关键字包括grant、revoke等

DCL语句主要是DBA用来管理系统中的对象权限使用
允许用户user1对本地test数据库的所有表进行SELECT/INSERT权限
grant select,insert on test.* to 'user1'@'localhost' identified by '123';

禁止insert,收回用户的insert权限
revoke insert on test.* from 'user1'@'localhost' ;

 

转载于:https://www.cnblogs.com/Thomas-blog/p/9840621.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL基础(一)SQL基础 的相关文章

  • 著名的图像检索系统

    1 QBIC Query By Image Content 图像检索系统是 IBM 公司 90年代开发制作的图像和动态景象检索系统 是第一个基于内容的商业化的图像检索系统 QBIC 系统提供了多种的查询方式 包括 利用标准范图 系统自身提供

随机推荐

  • 2021第十二届蓝桥杯Python组

    A卡片 cards 2021 10 i 1 while True s str i for j in s cards int j 1 flag False for j in cards if j lt 0 flag True break if
  • 元胞数组是什么?

    https www jianshu com p 525a788bbe68
  • python基础编程—综合实训

    一 实训要求 要求完成下列程序的功能 给出程序的源代码及运行效果截图 1 编写程序 根据下表提供的数据编写程序 实现快递计费系统 快递行业高速发展 我们邮寄物品变得方便快捷 某快递点提供华东地区 华南地区 华北地区的寄件服务 其中华东地区编
  • 1-linux初始化-hadoop

    系统初始化 1 网络配置 编辑文件 vi etc sysconfig network scripts ifcfg 网卡名 插入 IPADDR 192 168 200 10 GATEWAY 192 168 200 2 NETMASK 255
  • 最全idea java连接mysql数据库中文乱码解决方案

    相信不少人都遇到过中文乱码的问题 今天整理一篇解决乱码问题的文章分享给大家 中文乱码总逃脱不了编码格式以及匹配的问题 1 修改idea文件编码格式 idea File settings editor File Encodings 2 如果还
  • 第一批被AI淘汰的人已经出现,你距离失业还有多远?

    在我之前的文章有提到过 当chat GPT横空出世之后 AI必然会迎来大爆发 在chat GPT推出后 百度随即推出文心一言 而各个互联网大厂也纷纷入局 这将会导致一大批人失业 为什么各个互联网大厂会纷纷入局 他们不是人傻钱多 而是看到其背
  • 【Redis】主从复制和哨兵模式

    主从复制 主从复制 主机数据更新后根据配置和策略 自动同步到备机的master slaver机制 Master以写为主 Slave以读为主 作用 读写分离 性能扩展 容灾快速恢复 主从复制的配置 在我的 myredis目录中 存在redis
  • 太阳能路灯实际功率怎么计算?

    太阳能路灯实际功率怎么计算 李老师给朋友们分享测量法和计算法两个方式来得出太阳能路灯实际功率 一 最简单的就是太阳能路灯正常亮灯的时候用钳流表测试控制器负载输出端的电流和电压 两者相乘 得到实际输出功率 直流钳流表 二 通过太阳能板功率和锂
  • 2021-11-05 Leetcood 160 每日一题

    R星校长 已知两个单链表的头节点 headA 和 headB 请你找出并返回两个单链表相交的起始节点 如果两个链表没有交点 返回 null 杰哥我用白话翻译过来 链表A和链表B相交于C节点 我们返回C节点的地址 如果两个链表之间没有交点 程
  • jmeter性能测试常用插件简介

    jmeter性能测试常用插件简介 jmeter作为一个开源的接口性能测试工具 相对于商业性软件loadrunner来说 优点是更加灵活方便 操作简单 但相对来说 专业性和对性能参数的分析相对比较薄弱 但是通过第三方插件 就能将一些重要的参数
  • OpenCV 的浅拷贝和深拷贝,千万不要踩坑了!

    最近在使用 OpenCV 进行图像处理时 遇到一个小坑 这里总结一下 希望能对你有帮助 将一个变量赋给另一个变量 直接使用 符号即可 不过在 OpenCV 中就会遇到问题 Mat a b a b 都为 Mat 类型 这类拷贝方法是浅拷贝 没
  • 矩阵的逆以及实际应用

    矩阵逆的实际应用 最常见的是解线性方程组Ax b 如果A可逆 则解是x A 1 b 这类例子太多了 例如 小花 小明钱包里面各有几百元 小花金额的2倍和小明的金额 加起来是300元 小花金额的10倍比小明的金额对9倍 还多100元 则联立方
  • C语言之:数组的定义和初始化必备练习题

    1 作业标题 688 关于一维数组初始化 下面哪个定义是错误的 作业内容 A int arr 10 1 2 3 4 5 6 B int arr 1 2 3 4 5 6 C int arr 1 2 3 4 5 6 D int arr 10 0
  • Centos7安装Python2.7

    1 删除现有Python root test rpm qa grep python xargs rpm ev allmatches nodeps 强制删除已安装程序及其关联 root test whereis python xargs rm
  • 若依系统去redis

    1 注释 application yml文件中关于redis中所有的代码 2 修改framework模块下 RedisConfig该文件 删除也可以 3 在common模块中新建MyCache继承Cache类 package com xxx
  • 使用html+js书写分页功能

  • 【华为OD机试】拼接URL(C++ Python Java)2023 B卷

    时间限制 C C 1秒 其他语言 2秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题目描述 给定一个URL前缀和URL后缀 通过 分割 需要将其连接为一个完整的URL 如果前缀结尾和后
  • Transformer背景介绍

    目录 Transformer的诞生 Transformer的优势 Transformer的市场 Transformer的诞生 论文地址 Transformer的优势 Transformer的市场
  • 解决el-table大数据表格卡顿问题

    解决el table大数据表格卡顿问题 使用umyui中的表格组件 使用ux grid组件 记录滚动条位置 使用umyui中的表格组件 umyui官网 当u table元素中注入data对象数组后 添加use virtual属性开启虚拟 同
  • MySQL基础(一)SQL基础

    DDL Data Definition Languages 数据定义语言 常用关键字包括create drop alter等 0 连接数据库 mysql u root pconnection id 表示的是连接次数1 创建数据库 CREAT