收藏|MySQL常用语法小结
点击上方蓝色“程序猿DD”,选择“设为星标”
回复“资源”获取独家整理的学习资料!
来源 | http://8rr.co/uCbS
一、基础
模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。
主键的值不允许修改,也不允许复用(不能使用已经删除的主键值赋给新数据行的主键)。
SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。
SQL 语句不区分大小写,但是数据库表名、列名和值是否区分依赖于具体的 DBMS 以及配置。
MySQL服务的启动、停止与卸载
在 Windows 命令提示符下运行:
启动: net start MySQL
停止: net stop MySQL
卸载: sc delete MySQL
MySQL数据类型
MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:
数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间
date、time、datetime、timestamp、year
字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
登录
mysql -h 主机名 -u 用户名 -p
-h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
-u : 所要登录的用户名;
-p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项
然后命令提示符会一直以 mysql> 加一个闪烁的光标等待命令的输入, 输入 exit 或 quit 退出登录。
注释
SQL 支持以下三种注释:
# 注释SELECT *FROM mytable;
-- 注释
/* 注释1 注释2 */
二、创建或导入数据库和删除数据库
创建数据库
使用 create database 语句可完成对数据库的创建, 创建命令的格式如下:
create database 数据库名 [其他选项];
例如我们需要创建一个名为 samp_db 的数据库并使用gbk字符, 在命令行下执行以下命令:
create database samp_db character set gbk;
创建一个数据库使用utf8字符,
create database db_name default charset utf8;
选择要用的数据库:
use samp_db;
MySQL语句以分号(;)作为语句的结束, 但use语句可以不加分号。
导入数据库
假如当前有一个完整的sql文件samp_db.sql,只需把它倒入数据库就行。首先还是create和use数据库(数据库名称不要求和sql文件同名),然后使用
source D:\worksp\samp_db.sql;
就可以将数据库导入到数据库服务器中,但可能要花费一段时间。
删除数据库
drop database samp_db;
三、创建表
使用如下命令创建表:
create table 表名称(列声明);
例如:
create table students( id int unsigned not null auto_increment primary key, name char(8) not null, sex char(4) not null, age tinyint unsigned not null, tel char(13) null default "-");
查询所有的数据库:
show databases;
查询某个数据库中的所有表:
show tables;
查询某个表中的所有列(比如查询表customers):
show columns from customers;
查询某个表的详细信息:
describe customers;
四、修改表
alter table 语句用于创建后对表的修改, 基础用法如下:
添加列
基本形式:
alter table 表名 add 列名 列数据类型 [after 插入位置];
例如:在表的最后追加列 address:
alter table students add address char(60);
在名为 age 的列后插入列 birthday:
alter table students add birthday date after age;
修改列
基本形式:
alter table 表名 change 列名称 列新名称 新数据类型;
示例: 将表 tel 列改名为 telphone:
alter table students change tel telphone char(13) default "-";
将 name 列的数据类型改为 char(16):
alter table students change name name char(16) not null;
删除列
基本形式:
alter table 表名 drop 列名称;
示例: 删除 birthday 列:
alter table students drop birthday;
重命名表
基本形式:
alter table 表名 rename 新表名;
示例: 重命名 students 表为 workmates:
alter table students rename workmates;
删除整张表
基本形式:
drop table 表名;
示例: 删除 workmates 表:
drop table workmates;
五、表内的增删改查
插入数据
insert 语句可以用来将一行或多行数据插到数据库表中, 使用的一般形式如下:
insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);
其中 [] 内的内容是可选的, 例如, 要给 samp_db 数据库中的 students 表插入一条记录, 执行语句:
insert into students values(NULL, "王刚", "男", 20, "13811371377");
有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:
insert into students (name, sex, age) values("孙丽华", "女", 21);
查询数据
基本用法
select 语句常用来根据一定的查询规则到数据库中获取数据, 其基本的用法为:
select 列名称 from 表名称 [查询条件];
例如要查询 students 表中所有学生的名字和年龄, 输入语句
select name, age from students;
也可以使用通配符 * 查询表中所有的内容, 语句:
select * from students;
和insert或create配合
使用SELECT语句返回的列和值来填充INSERT语句的值。
intert into table_1 select c1, c2, from table_2;
这样做的前提是两个表具有相同的表结构,通过复制一个表得到一个相同表结构的语句为:
create table tasks_bak like tasks;
类似的还有将一个表的内容插入到一个新表
create table newtable as select * from mytable;
按条件查询where
where 关键词用于指定查询条件, 用法形式为:
select 列名称 from 表名称 where 条件;
where 子句不仅仅支持 "where 列名 = 值" 这种名等于值的查询形式, 对一般的比较运算的运算符都是支持的, 例如 =、>、<、>=、<、!=
以及一些扩展运算符 is [not] null、in、like
等等。还可以对查询条件使用 or
和 and
进行组合查询。
示例: 查询年龄在21岁以上的所有人信息:
select * from students where age > 21;
查询名字中带有 "王" 字的所有人信息:
select * from students where name like "%王%";
查询id小于5且年龄大于20的所有人信息:
select * from students where id<5 and age>20;
distinct关键字
这个关键字用来在查询的结果中去重,主要有以下几种用法:
作用于单列
select distinct [列名] from [表名];
例如
select distinct username from t_user;
假如username有重复的,只显示一次。
作用于多列
select distinct [列名1], [列名2] from [表名];
例如:
select distinct username, password form t_user;
这种方法是根据两列分别去重的结果来输出的,根据去重之后剩余行数较多的列来输出。如下里例子:
表内容为:
user_id | username | password |
---|---|---|
1 | admin | 123456 |
2 | user | 111111 |
3 | user | 222222 |
如果根据username和password去重,结果为:
username | password |
---|---|
admin | 123456 |
user | 111111 |
user | 222222 |
limit关键字
限制返回的行数。可以有两个参数,第一个参数为起始行(第一条数据的起始行为0);第二个参数为返回的总行数。
select * from [表名] limit 3; # 从第一条数据开始,共返回3行
select * from [表名] limit 1, 2; # 从第二条数据开始,共返回2行
更新语句
update 语句可用来修改表中的数据, 基本的使用形式为:
update 表名称 set 列名称=新值 where 更新条件;
使用示例: 将id为5的手机号改为默认的"-":
update students set tel=default where id=5;
将所有人的年龄增加1:
update students set age=age+1;
将手机号为 13288097888 的姓名改为 "张伟鹏", 年龄改为 19:
update students set name="张伟鹏", age=19 where tel="13288097888";
同样,update语句也可以和select语句结合使用。
删除语句
delete 语句用于删除表中的数据, 基本用法为:
delete from 表名称 where 删除条件;
使用示例: 删 除id为2的行:
delete from students where id=2;
删除所有年龄小于21岁的数据:
delete from students where age<20;
删除表中的所有数据:
delete from students;
往期推荐
RabbitMQ 的这些骚操作你知道吗?
科普|什么是负载均衡(Load balancing)
自己动手,丰衣足食:从零开始写个 IDEA 插件,要啥功能就做啥!
Spring Boot 2.x基础教程:JdbcTemplate的多数据源配置
两种写法的效果一样,那么到底哪一种更好呢?
StackOverflow 上面最流行的 7 个 Java 问题!
欢迎加入我的知识星球,聊技术、说职场、侃社会。
头发很多的中年程序员DD和他的朋友们在这里期待你的到来!
加入方式:长按下方二维码噢
近期预告:
【技术圈】分享最近给阿里提的一个数据安全问题
【聊职场】说说公司股权与期权的那些门道
最近更新:
【技术圈】分享最近碰到的API网关的奇怪用法...
【社会人】社会入门最不能忽略的五险一金
我的星球是否适合你?
点击阅读原文看看我们都聊过啥?
收藏|MySQL常用语法小结相关推荐
- Mysql常用语法总结
Mysql常用语法总结如下: #连接mysql数据库(Dos下面) mysql -u root -p 123 #创建数据库 create database myschool; #创建表 drop ta ...
- MYSQL常用语法命令,MySQL中delete,drop和alter分别是用来删除什么的?有什么区别?删除了以后可以恢复吗?
1.Alter.Delete.Drop相关语法 a.Alter 删除,添加或重新定义列 删除列:alter table tablename drop columnname 增加列:alter tabl ...
- MySQL常用语法记录
0.说明 记录MySQL使用到的常用语法. 1.MySQLDISTINCT唯一 2.MySQLLIMIT限制 3.MySQL ORDER排序升序 4.MySQL DESC降序 5.MySQL WHER ...
- 【ChatGPT】输出MySQL常用语法汇总
以下是MySQL常用的语法汇总: 创建数据库 CREATE DATABASE database_name; 删除数据库 DROP DATABASE database_name; 创建表 CREATE ...
- MYSQL 常用语法学习汇总
数据库的概念 DB:数据库,保存一组有组织的数据的容器(database) DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据(Database Management Syste ...
- 一文读懂MySQL常用语法
MySQL查询语句链接地址 MySQL是什么? 成为MySQL大神的基础~ 数据类型 数值:整数,浮点数(小数) 日期:年,年月日,时分秒,年月日时分秒 字符串:文本类型字符串,二进制类型字符串 整形 ...
- MySQL常用数据类型小结
在 MySQL 中,有三种主要的类型:字符串.数字和日期/时间类型. 目录 [隐藏] 1 字符串类型 2 数值类型 3 日期和时间类型 4 使用建议 5 艺搜参考 字符串类型 CHAR 0-255字节 ...
- 手写MySQL常用语法
文章目录 01 准备工作 02 了解你的数据库 03 检索数据 04 对数据排序 05 使用where进行数据筛选 06 组合where子句 07 使用通配符 08 正则表达式 09 计算字段 10 ...
- MySQL 常用语法 之 DISTINCT
DISTINCT作用很简单就是去除重复行的数据. 具体看下面列子 表A数据[两条 nami 99] nameA scoreA robin 98 nami 99 saber 98 lu ...
最新文章
- 这份Kaggle Grandmaster的图像分类训练技巧,你知道多少?
- ASP,VBScript常用的内置函数,lbound(),ubound(),int(),fix(),rnd(),instr(),instrrec(),,
- 解决android应用程序适用新老android系统版本方法
- WildFly 9 –别希望您的控制台像这样!
- 【ES6(2015)】Iterator
- 谜题40:不情愿的构造器
- LabVIEW查找范例的使用举例
- 2019年VQA论文整理
- 对象存储(云存储)概述
- 新书来了 | 邀您一起来看看
- HDU-4477 Cut the rope II 递推
- php图片上传为base64,php实现base64图片上传方式实例代码
- c语言性能测试库,C语言qsort函数算法性能测试
- Linux Graphics 周刊(第 9 期)
- cib.xml for 2resource2group4score
- 国内股票MACD指标计算,Python实现MACD指标计算,Talib实现MACD指标计算
- 【JavaScript 逆向】某道翻译接口逆向
- vue使用高德地图点标记及复杂操作
- C语言实现因式分解输出
- out输出口_Line Out是扬声器输出端口,用于外接音箱或功放等。_学小易找答案
热门文章
- cve-2019-6340 drupal8 rest rce 漏洞复现
- python3 域名转ip
- linux 解压 tar.gz 报错 gzip: stdin: not in gzip format
- linux 初始化工作进程 systemd简介
- 使用Wireshark分析工控协议
- 关于 $'\r': 未找到命令的解决(bad interpreter )
- IIS7中的站点、应用程序和虚拟目录详细介绍
- Linux堆内存管理深入分析
- Texmaker使用方法、Latex的优缺点
- 单招计算机应用基础试题及答案,对口单招计算机应用基础模拟试题