MySQL基础(常用的语句)
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
userset
host="%",authentication_string=password
(‘123456’)where
user="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_testcharacter 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
tableif exists
stu_test;
**
- 给表添加一个新的字段
语法格式
alter
table table_nameadd
字段属性 字段类型;
示例
alter
table bookadd
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
studentvalues
(100, 10000, ‘唐三藏’, NULL);
insert into
studentvalues
(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;
- 指定列查询
– 指定列的顺序不需要按定义表的顺序来
selectid, name, english
from exam_result;
- 查询字段为表达式
– 表达式不包含字段
select id, name,10
from exam_result;
– 表达式包含一个字段
selectid
, name, english + 10 from exam_result;
– 表达式包含多个字段
selectid, 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 idlimit
3offset
0;
– 第 2 页
select id, name, math, english, chinese from exam_result order by idlimit
3offset
3;
– 第 3 页,如果结果不足 3 个,不会有影响如果n越界,不会有影响
select id, name, math, english, chinese from exam_result order by idlimit
3offset
6;
注意order by和limit一起使用时会有坑,
修改(Update)
语法:
update
table_nameset
column = expr [, column = expr …] [where …] [order by…] [limit…]
案例:
– 将孙悟空同学的数学成绩变更为 80 分
update
exam_resultset
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基础(常用的语句)相关推荐
- mysql基础常用语句
sql最常用命令语句总结 我们以student表为例: 基本查询 表全部信息: select * from 表名称; //*可以理解代表全部 eg: 我们查询整个student表: select * ...
- MySQL 基础————常用数据类型
引言 从第一次学习mysql开始,不知道为什么MySQL的数据类型始终没有像Java 一样深入脑海,对某些数据类型的定义和用法,也并不清晰,这篇文章,就好好总结一番,将MySQL中几个常用的数据类型归 ...
- MYSQL基础之SQL语句概念,规范,以及了解SELECT
SQL 的简介 1974年,IBM研究员发布了一篇揭开了数据库技术的论文<SEQUEL:一门机构化的英语查询语言>,直到新增这个查询语言也没有太大的变化.可以看出SQL语言的生命力之强. ...
- django mysql api_Django的API操作mysql中常用的语句
[背景] 增/删/改/查 如何操作数据库 导入数据库的模型In [23]: from blog.models import People [增加记录]--三种方法 方法一: 直接使用数据模对象的cre ...
- MySQL基础之DML语句
DML语句 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert),更新(update),删除(delete)和查询(select),是开发人员日常使用最频繁的操作. 插入记录 表 ...
- MYSQL基础(sql语句)
SQL语句 文章目录 SQL语句 SQL语句的多种类型: 1.DDL操作 1.1 数据库DDL操作 1.2 表DDL操作 1.3 用户DDL操作 1.4 查看命令SHOW 1.5 ALTER修改操作 ...
- MySQL基础之查询语句
导入学习数据库 source /opt/yiibaidb.sql SQL是什么?MySQL是什么? SQL是结构化查询语言(Structured Query Language). SQL是一种专门用来 ...
- 【MySQL基础】5- SQL语句大全
1.基础 登录数据库系统 mysql -h localhost -u root -p#"-h"参数指连接的主机名 #"-u"参数表示用户名 #"-p& ...
- 数据库MySQL(一) 常用查询语句
MySQL笔记 数据库表.查询.排序.数据处理函数 1 数据库 什么是数据库?什么是数据库管理系统?什么是SQL?它们之间的关系? 数据库: 顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存 ...
- MySQL基础之DDL语句
讲解SQL语句三大分类和每个分类的SQL使用入门. 使用的是数据库是:MySQL 8.0.27 1.SQL分类 DDL(Data Definition Language)语句:数据定义语句. 用途 ...
最新文章
- python获取登录按钮_python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。
- [原创]Coding4Fun检测你的网络,用C#获取本机TCP、UDP状态及连接(二)
- fliqlo windows_Windows小众软件工具推荐
- css中对position的几种定位方式的最佳诠释
- 浅谈hashcode
- 多线程的基本概念 (什么是cpu)
- python相同key合并value_python之入门
- 第四范式@2020 WAIC世界人工智能大会
- JVM系列之:从汇编角度分析Volatile
- 九大排序算法Java实现
- 交换机开发(四)—— ARP 基础知识解析
- mysql 事物 锁行 测试_MySQL Transaction--RR事务隔离级别下加锁测试
- 高级service之ipc ADIL用法
- MySQL8增量备份1008无标题_mysql增量备份
- 你知道吗?还有比自回归方式更快更好的序列生成!
- 自定义char类型字段
- linux锐捷代码_锐捷 for linux - 沈阳建筑大学
- extjs的EditorGridPanel中的ComboBox列中显示值的问题
- 在 React 中构建一个可拖动的滑块
- System mem和AGP mem和video mem