MySQL常用语句

#操作数据库

##创建数据库

CREATE DATABASE `dbName`;

##切换数据库

USE `dbName`;

##查看所有数据库

SHOW DATABASES;

##删除数据库(删除数据库、表、字段的时候用drop )

DROP DATABASE `dbName`;

#操作数据库表

##创建表

CREATE TABLE `TabName`(

cid INT PRIMARY KEY AUTO_INCREMENT,

cname VARCHAR(10)

);

##查看表结构

desc 表名;

##添加表数据

1. 语法一: into 表名 (列名1,列2...) values(值1,值2...),(值1,值2...)...;

INSERT INTO `tab1` (cid,cname) VALUES

(1,'name1'),

(2,'name2'),

(3,'name3');

2. 语法二:insert into 表名(列2,列3) values(值2,值3..)...;  当主键有自动增长时,可以省略主键不写

INSERT INTO tab1(cname) VALUES ('name4');

3. 语法三:insert into 表名 values(null,值2,值3....),(null,值2,值3..);  当主键有自动增长时,可以省略列名不写,但是要写出所有的值,主键写null

INSERT INTO tab1 VALUES (NULL,'name5');

##查看表数据

1. 查看所有

SELECT * FROM tab1;

2. 查看指定列

SELECT `cname` from tab1;

##删除表元素(删除表元素用delete或者truncate)

语法一: delete from 表名 [where 条件]  删除表中元素,但是不重置主键的自动增长

DELETE FROM tab1 WHERE cname = 'name5';

语法二: truncate table 表名;  删除表中元素并重置主键的自动增长

TRUNCATE TABLE `tabName`;

#操作表字段

##添加表字段

语法: alter table 表名 add 字段名 数据类型;

ALTER TABLE `tabName` ADD `field` VARCHAR(20);

##修改表字段

ALTER TABLE `tabName` CHANGE `oldField` `newField` INT;

##删除表字段

ALTER TABLE `tabName`DROP `fieldName`;

#操作字段约束 (总结规律:当涉及到修改表结构的时候,需要用到alter关键字)

##删除主键约束

语法: TABLE 表名 DROP PRIMARY KEY;

ALTER TABLE `tab2 ` DROP PRIMARY KEY;

##设置主键约束

语法: ALTER TABLE 表名 ADD PRIMARY KEY(列名);

ALTER TABLE `tab2 ` ADD PRIMARY KEY(`cid`);

##修改字段约束

语法: ALTER TABLE 表名 MODIFY 字段 + 数据类型 + 约束名;

ALTER TABLE tab2 MODIFY `cname` VARCHAR(10) NOT NULL;

##设置唯一约束

语法: ALTER TABLE 表名 ADD UNIQUE(字段);

ALTER TABLE `product` ADD UNIQUE(pname);

#查询表数据

##注意##

当你想要查询表中的部分字段,并且将该表起了个别名,那么在调用表中字段的时候,格式必须写为:别名.字段名

千万不要写成:原表名.字段名  --> mysql数据库会报错

#正确的写法:

SELECT a.pid,a.pname,a.price FROM product AS a;

#错误的写法:

SELECT product.pid,product.pname,product.price FROM product AS a;

##过滤表数据 --> distinct

select distinct 要过滤的字段 from 表名;

##给表、字段起别名 --> As(可省略)

select * from `tabName` (as) `newTabName`;

##在查询语句中可以执行运算操作

例: 查询商品表中所有商品,并将价格提高1000元

select pname, price + 1000 (as) price from `product`;

##模糊查询 --> like + 条件(%或者 _)  _ : 一个下划线表示一个字符;   %: 表示多个字符

例: 查询商品表中名称带有'男装'的商品信息

select * from `product where pname like '%男装%';

select * from `product` where pname like '__男装';  //例如: 劲霸安装,一个下划线_ 表示一个字符

##排序查询 --> order by

select * from product order by price desc;  //按照降序顺序排序

select * from product order by price (asc)  //按照升序顺序排序 asc可以省略

##聚合函数查询 --> 对某列的数据按照特定的函数进行查询,返回一个单一的值, 忽略值为null的数据

#在test表中插入三条数据,其中最后一条的price值为null

INSERT INTO test VALUES(NULL,20),

(NULL,300),

(NULL,NULL);

#使用聚合函数count进行查询

SELECT COUNT(price),COUNT(id) FROM test;

#查询结果如下:

###常用的聚合函数有以下几种:

count: 查询非空值的字段数量

sum: 求和

max,min: 最大值、最小值

avg: 平均值

##分组查询 --> group by

SELECT * FROM `tabName` GROUP BY `field`;  //select * from 表名 group by 字段名;

##where和having的区别

where 用于分组前的条件过滤

having 用于分组后的条件过滤

##分页查询 --> limit

#首先查询所有数据

SELECT * FROM gjp_ledger;

结果如下:

#分页查询-查询前5条数据

SELECT * FROM gjp_ledger LIMIT 5;

#查询第二页数据,每页5条数据

SELECT * FROM gjp_ledger LIMIT 5,5;

#查询第三页的数据,每页5条数据

SELECT * FROM gjp_ledger LIMIT 10,5;

规律总结:

查询前n条数据(包含第n条)

select * from 表名 limit n;

查询第m页,每页n条数据(不包含第(m-1)*n 条数据)

select * from 表名 m,n;

##多表联查

一对多关系:

###添加外键约束

#添加外键约束

#语法:alter table 从表名 add (constraint 给外键起个别名)foreign key(从表中要做外键的字段) references 主表(主键);

ALTER TABLE product ADD CONSTRAINT products_fk FOREIGN KEY (category_id) REFERENCES products(psid);

###删除外键约束

#删除外键约束

#语法:alter table 从表名 drop foreign key 外键别名;

ALTER TABLE product DROP FOREIGN KEY products_fk;  // 删除的外键名要使用别名,写外键的字段名删除不掉

多对多关系:

创建一个中间表,使用两个表的主键作为中间表的外键

CREATE TABLE middle(

products_id INT,

orders_id INT,

FOREIGN KEY(products_id) REFERENCES products(pid),

FOREIGN KEY(orders_id) REFERENCES orders(oid)

);

##多表查询---内连接、外链接查询

1. select * from 表1,表2;  会产生笛卡尔积

笛卡尔积:表1数据数量 * 表2数据数量

2. 内连接查询  //只能查看到有关联的数据

select * from 表1 inner join 表2 on 表1.主键 = 表2.外键;  //显式内连接

select * from 表1,表2 where 表1.主键 = 表2.外键;  //隐式内连接

3. 外连接查询 -->左外连接、右外连接

select * from 左表 left  outer join 右表 on  ...;  /左做连接,查询结果会列出所有匹配的数据,以及没有匹配项的会用null来显示

#外连接 --> 左外连接  以左表作为匹配项展示数据

SELECT * FROM products ps LEFT OUTER JOIN product p ON ps.psid=p.category_id;

#外连接 --> 右外连接  以右表作为匹配项展示数据

SELECT * FROM products ps RIGHT OUTER JOIN product p ON p.category_id = ps.psid;

psid mysql_浅识MySQL相关推荐

  1. revoke mysql_浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利 grant selec ...

  2. 全文检索技术 mysql_浅谈MYSQL的全文检索的应用

    [IT168 技术文档]环境:LINUX MYSQL4/5(5以上的版本直接可以在插件形式编译进MYSQL内) 使用MYSQL的朋友一定有这样的经历,那就是在检索中文的时候往往力不从心.使用LIKE的 ...

  3. (三)mysql_浅谈MySQL(三)

    //文章浅显,大神勿怪,欢迎讨论 //未完待续之前我们说到数据库像一个异世界的图书馆,我们是其中的管理员(对,就是那位man),管理着图书馆里的所有资源,如书架(Databases),里面装着书(Da ...

  4. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  5. 浅谈 MySQL 子查询及其优化

    2019独角兽企业重金招聘Python工程师标准>>> 使用过oracle或者其他关系数据库的DBA或者开发人员都有这样的经验,在子查询上都认为数据库已经做过优化,能够很好的选择驱动 ...

  6. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  7. mysql怎么在海量数据上ddl_浅谈MySQL Online DDL(中)

    本文首发于个人微信公众号<andyqian>,期待你的关注! 前言 在上一篇文章中<浅谈MySQL Online DDL (上)>中,我们谈到了MySQL Online DDL ...

  8. php 如何设计索引_Mysql学习浅谈mysql的索引设计原则以及常见索引的区别

    <Mysql学习浅谈mysql的索引设计原则以及常见索引的区别>要点: 本文介绍了Mysql学习浅谈mysql的索引设计原则以及常见索引的区别,希望对您有用.如果有疑问,可以联系我们. 索 ...

  9. 浅谈MySQL的B树索引与索引优化

    转载自   浅谈MySQL的B树索引与索引优化 MySQL的MyISAM.InnoDB引擎默认均使用B+树索引(查询时都显示为"BTREE"),本文讨论两个问题: 为什么MySQL ...

最新文章

  1. vs2008\drivers\opengl_2.h.c_opengl基本功能介绍+示例
  2. Java学习笔记12
  3. Android 插件化原理学习 —— Hook 机制之动态代理
  4. Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题
  5. php 一天只能点赞上一次,ThinkPHP3.2 实现浏览量和点赞量,每次访问页面浏览量+1以及每个登录用户只能对同一篇文章点赞一次-Go语言中文社区...
  6. PHP yii 框架源码阅读(一)
  7. TQ210——底板部分原理图
  8. 战网下载CDN重定向失败_卧槽,又开源一个下载神器,利用各种平台下载任意文件...
  9. (90)AXI突发式读写时序和过程
  10. 14002.petalinux编译配置项目
  11. PHP如何启动scrapy,php教程博客
  12. DevOps使用教程 华为云(10)GitHub git Pull Request 合并请求
  13. PC版Android系统声卡驱动,android下调试声卡驱动之概述
  14. NB-IoT和eMTC对比
  15. 语雀转换发布CSDN和语雀导出图片图片无法识别处理(针对typora)
  16. 马云思考阿里下一个15年:大数据是未来核心
  17. `全网最细!! 入门必看Git教程链接:https://gitee.com/all-about-git`
  18. python的OGR库获取geometry属性返回None,feature.geometry()
  19. VAPS XT开发入门教程02:安装配置
  20. 工业触控一体机的特点和优势

热门文章

  1. java程序购买_JAVA(二) ——购买商品简单程序
  2. Excel合并多列增加指定字符指定字符替换为换行符调整行高步骤
  3. Git教学资源,安装,关联账号,创建/关联/克隆库,版本回退,管理修改基本指令
  4. 串口转无线网模块:WizFi630 快速入门指导
  5. Attacking Black-box Recommendations viaCopying Cross-domain User Profiles
  6. MySQL环境变量的配置mysqldump环境变量的配置
  7. 计算机重镜像网络文件夹位置,利用备份的Win10映像系统文件还原win10的教程
  8. android手机密码忘了,安卓手机密码忘记了怎么解锁
  9. 计算机怎么登录用户名和密码忘了怎么办,忘记了路由器的登录用户名与密码怎么办...
  10. Java 写数据到文件