MySQL

  • 客户端连接服务器
  • 数据库操作
  • 常用数据类型
    • 数值类型
    • 字符类型
    • 日期类型
  • 表的操作(CRUD)
    • 新增(Create)
    • 查询(Retrieve)
    • 修改(Update)
    • 删除(Delete && Truncate)
  • 总结

注意sql语句以分号;为结尾,且不区分大小写。

客户端连接服务器

MySQL默认只允许在服务器本机 使用 root 用户登录,要开启 root 用户的远程登录,在MySQL服务器本机执行:

mysql -u root -p

要求输入密码,没有设置密码则直接回车进入MySQL命令行以后,可以看到 mysql>

– 使用mysql数据库
use mysql;

– 更新用户表的root账户,设置为任意ip都可以访问,密码修改为123456
update user set host="%",authentication_string=password(‘123456’)whereuser="root";

– 刷新权限
flush privileges;
– 退出
quit;

数据库操作

  • 1显示当前的数据库

show databases;;

  • 2创建数据库

语法:

create database [IF NOT EXISTS] db_name [create_specification [, create_specification] …]

create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT]
COLLATE collation_name

说明

  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集(一般采用utf-8,但在sql中为utf8mb4)
  • COLLATE: 指定数据库字符集的校验规则

示例:

  • 创建名为 db_test1 的数据库

create database db_test1;

  • 如果系统没有 db_test 的数据库,则创建一个使用utf8mb4字符集的 db_test 数据库,如果有则不创建

create database if not exists db_test character set utf8mb4;

  • 3使用数据库

use 数据库名;

  • 4删除数据库
    语法

drop database [if exists] db_name;

说明:
数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除

常用数据类型

红色标注的为常用的。

数值类型

分为整型和浮点型:

字符类型

日期类型

表的操作(CRUD)

CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写。

  • 需要操作数据库中的表时,需要先使用该数据库

use db_test;

  • 查看表结构

desc 表名;

示例

  • 创建表

语法格式 :

create table table_name (
field1 datatype,
field2 datatype, field3 datatype
);

可以使用comment增加字段说明。如果表名和关键字重复的话使用·将其括起来。
示例:

create table stu_test ( id int,
name varchar(20) comment ‘姓名’,
password varchar(50) comment ‘密码’,
age int,
sex varchar(1),
birthday timestamp,
amout decimal(13,2),
resume text
);

  • 删除表

语法格式:

drop [TEMPORARY] table[if exists] tbl_name [, tbl_name] …

示例:

– 删除 stu_test 表
drop table stu_test;
– 如果存在 stu_test 表,则删除 stu_test 表
drop table if exists stu_test;
**

  • 给表添加一个新的字段

语法格式

alter table table_name add 字段属性 字段类型;

示例

alter table book add publish_data datetime;

接下来进入主题吧

新增(Create)

语法:

insert[into] table_name [(column [, column] …)]
values(value_list) [, (value_list)] …
value_list: value, [, value] …

案例:
一个小习惯,在创建前先把之前的表删除。

– 创建一张学生表
drop table if exists student;
create table student (
id INT,
sn INT comment ‘学号’,
name VARCHAR(20) comment ’ 姓 名 ',
qq_mail VARCHAR(20) comment ‘QQ邮箱’
);

  • 1.单行数据 + 全列插入

– 插入两条记录,value_list 数量必须和定义表的列的数量及顺序一致
insert into student values(100, 10000, ‘唐三藏’, NULL);
insert into student values(101, 10001, ‘孙悟空’, ‘11111’);

  • 2多行数据 + 指定列插入

– 插入两条记录,value_list 数量必须和指定列数量及顺序一致
insert into student (id, sn, name) values
(102, 20001, ‘曹孟德’),
(103, 20002, ‘孙仲谋’);

查询(Retrieve)

语法:

select
[distinct] {* | {column [, column] …} [from table_name]
[where…]
[order by column [asc| desc], …] limit…

  • 全列查询

– 通常情况下不建议使用 * 进行全列查询
– 1. 查询的列越多,意味着需要传输的数据量越大;
– 2. 可能会影响到索引的使用。
select* from exam_result;

  • 指定列查询

– 指定列的顺序不需要按定义表的顺序来
select id, name, english from exam_result;

  • 查询字段为表达式

– 表达式不包含字段
select id, name, 10 from exam_result;
– 表达式包含一个字段
select id, name, english + 10 from exam_result;
– 表达式包含多个字段
select id, name, chinese + math + english from exam_result;

  • 别名 as

为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:

selectcolumn [as] alias_name […] fromtable_name;
– 结果集中,表头的列名=别名
select id, name, chinese + math + english 总分 fromexam_result;

  • 去重 distinct

使用distinct关键字对某列数据进行去重:

select distinct math fromexam_result;

  • 排序 order by

语法:

asc为升序 默认为升序(从小到大)
desc为降序(从大到小)
select… from table_name [where…] order by column [asc|desc], […];

注意
1.没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2.NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
3.可以使用表达式及别名排序

4.可以对多个字段进行排序,排序优先级随书写顺序

  • 条件查询 where

比较运算符

逻辑运算符

注:
1.where条件可以使用表达式,但不能使用别名
2.AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
分页查询:limit
语法:

– 起始下标为 0
– 从 0 开始,筛选 n 条结果
select… from table_name [where…] [order by…] limit n;
– 从 s 开始,筛选 n 条结果
select… fromtable_name [where …] [order by…] limit s, n;
– 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
select … from table_name [where…] [order by …] limit n offset s;

案例:按 id 进行分页,每页 3 条记录,分别显示 第 1、2、3 页

– 第 1 页
select id, name, math, english, chinese from exam_result order by id limit 3 offset 0;
– 第 2 页
select id, name, math, english, chinese from exam_result order by id limit 3 offset 3;
– 第 3 页,如果结果不足 3 个,不会有影响 如果n越界,不会有影响
select id, name, math, english, chinese from exam_result order by id limit 3 offset 6;

注意order by和limit一起使用时会有坑,

修改(Update)

语法:

update table_name set column = expr [, column = expr …] [where …] [order by…] [limit…]

案例:

– 将孙悟空同学的数学成绩变更为 80 分
update exam_result set math = 80 where name = ‘孙悟空’;

删除(Delete && Truncate)

  • Delete
    作用

语法:

delete from table_name [where…] [order by…] [limit…]

案例:

– 删除孙悟空同学的考试成绩
delete from exam_result where name = ‘孙悟空’;
– 删除整表数据(删除的是整张表的数据,但是表还在,删除表的话用drop)
delete from for_delete;

  • Truncate
    作用:用于完全清空表数据 , 但表结构 , 索引 , 约束等不变

语法:

TRUNCATE [TABLE] table_name;
– 清空年级表
TRUNCATE grade

  • 注意:Truncate和Delete的区别

相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
不同 :

  • 使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器计数器会归零
  • 使用TRUNCATE TABLE不会对事务有影响

总结

sql这块多练就完事了,奥利给,下一章MySQL中的相关约束。

MySQL基础(常用的语句)相关推荐

  1. mysql基础常用语句

    sql最常用命令语句总结 我们以student表为例: 基本查询 表全部信息: select * from 表名称; //*可以理解代表全部 eg: 我们查询整个student表: select * ...

  2. MySQL 基础————常用数据类型

    引言 从第一次学习mysql开始,不知道为什么MySQL的数据类型始终没有像Java 一样深入脑海,对某些数据类型的定义和用法,也并不清晰,这篇文章,就好好总结一番,将MySQL中几个常用的数据类型归 ...

  3. MYSQL基础之SQL语句概念,规范,以及了解SELECT

    SQL 的简介 1974年,IBM研究员发布了一篇揭开了数据库技术的论文<SEQUEL:一门机构化的英语查询语言>,直到新增这个查询语言也没有太大的变化.可以看出SQL语言的生命力之强. ...

  4. django mysql api_Django的API操作mysql中常用的语句

    [背景] 增/删/改/查 如何操作数据库 导入数据库的模型In [23]: from blog.models import People [增加记录]--三种方法 方法一: 直接使用数据模对象的cre ...

  5. MySQL基础之DML语句

    DML语句 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert),更新(update),删除(delete)和查询(select),是开发人员日常使用最频繁的操作. 插入记录 表 ...

  6. MYSQL基础(sql语句)

    SQL语句 文章目录 SQL语句 SQL语句的多种类型: 1.DDL操作 1.1 数据库DDL操作 1.2 表DDL操作 1.3 用户DDL操作 1.4 查看命令SHOW 1.5 ALTER修改操作 ...

  7. MySQL基础之查询语句

    导入学习数据库 source /opt/yiibaidb.sql SQL是什么?MySQL是什么? SQL是结构化查询语言(Structured Query Language). SQL是一种专门用来 ...

  8. 【MySQL基础】5- SQL语句大全

    1.基础 登录数据库系统 mysql -h localhost -u root -p#"-h"参数指连接的主机名 #"-u"参数表示用户名 #"-p& ...

  9. 数据库MySQL(一) 常用查询语句

    MySQL笔记 数据库表.查询.排序.数据处理函数 1 数据库 什么是数据库?什么是数据库管理系统?什么是SQL?它们之间的关系? 数据库: 顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存 ...

  10. MySQL基础之DDL语句

    讲解SQL语句三大分类和每个分类的SQL使用入门. 使用的是数据库是:MySQL 8.0.27 1.SQL分类   DDL(Data Definition Language)语句:数据定义语句. 用途 ...

最新文章

  1. python获取登录按钮_python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。
  2. [原创]Coding4Fun检测你的网络,用C#获取本机TCP、UDP状态及连接(二)
  3. fliqlo windows_Windows小众软件工具推荐
  4. css中对position的几种定位方式的最佳诠释
  5. 浅谈hashcode
  6. 多线程的基本概念 (什么是cpu)
  7. python相同key合并value_python之入门
  8. 第四范式@2020 WAIC世界人工智能大会
  9. JVM系列之:从汇编角度分析Volatile
  10. 九大排序算法Java实现
  11. 交换机开发(四)—— ARP 基础知识解析
  12. mysql 事物 锁行 测试_MySQL Transaction--RR事务隔离级别下加锁测试
  13. 高级service之ipc ADIL用法
  14. MySQL8增量备份1008无标题_mysql增量备份
  15. 你知道吗?还有比自回归方式更快更好的序列生成!
  16. 自定义char类型字段
  17. linux锐捷代码_锐捷 for linux - 沈阳建筑大学
  18. extjs的EditorGridPanel中的ComboBox列中显示值的问题
  19. 在 React 中构建一个可拖动的滑块
  20. System mem和AGP mem和video mem

热门文章

  1. Python数据分析案例——20年【科比NBA】生涯|数据分析
  2. 2019年9月全国计算机二级Office题库软件
  3. 爱奇艺涨价背后,还有四步大棋
  4. 关于STM32F107移植到GD32F307后,固件不断重启的一个解决方式
  5. PWM波的原理和应用
  6. 如何使用PPT制作随机点名抽奖
  7. 豪迈HOMAG变频器维修E107544豪迈变频器维修09F5C3B
  8. 桌面应用之electron开发
  9. 获取百度地图、高德地图经纬度坐标
  10. 中国城市公园规划建设行业运行状况与趋势预测展望报告2022-2028年版