文档章节

mysql简单例子

 页疑
发布于 2015/09/03 16:12
字数 982
阅读 23
收藏 0

登陆数据库:

mysql -u用户名 -p密码 -P端口 -h数据库地址

修改mysql提示符:(仅本次连接有效)

方法一:执行mysql -uroot -proot -prompt \h
结果为:localhost
方法二:进入mysql后,执行PROMPT \u@\h \d>
结果为:root@localhost(数据库名)>

参数说明:

\D 完整日期
\d 当前数据库
\h 服务器名称(域名/IP)
\u 系统当前用户

库级操作:

SELECT USER();//显示当前用户
SELECT DATABASE();//显示打开的数据库
//创建数据库
//CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;
CREATE DATABASE hehe;

//查看已有的数据库信息(比如编码等)
SHOW CREATE DATABASE hehe;

//显示数据库
//SHOW {DATABASES | SCHEMA} [LIKE 'Ppattern' | WHERE expr]
SHOW DATABASES;

//修改数据库(比如编码等)
//ALTER {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name;

//删除数据库
//DROP {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
DROP DATABASE hehe;


表级操作:

//创建表
//列名 数据类型 [数值型是否有符号] [是否可NULL] [默认值] [唯一约束] [自动递增,1开始] [主键,一张表只能有一个]
//列名 数据类型 [UNSGINED] [NULL | NOT NULL] [DEFAULT value] [UNIQUE KEY] [AUTO_INCREMENT] [PREMARY KEY]
CREATE TABLE table_name(
    username varchar(20),
    number int(11) unsgined,
    sex ENUM(1,2,3) DEFAULT 3,
);

//查看表
SELECT TABLES [FROM 数据库名];

//查看表结构
SHOW COLUMNS FROM table_name;

//修改表名
方法一:ALTER TABLE table_name RENAME new_name
方法二:RENAME TABLE table_name TO new_name [, table_name2 TO new_name2,...]

//添加列
ALTER TABLE table_name ADD password varchar(20) NOT NULL AFTER {username | FIRST | LAST};

//删除列,并增加
ALTER TABLE table_name DROP password, DROP username, ADD id;

//修改列定义
ALTER TABLE table_name MODIFY username varchar(50) NOT NULL;

//修改列名和定义
ALTER TBALE table_name CHANGE old_col_name new_col_name [定义] [FIRST | AFTER col_name]

//列操作总结:ALTER TABLE table_name [操作],[操作]...


增、删、改、查:

=========================增=========================
//INSERT [INTO] table_name [(列名1,列名2,...)] VALUE(第一条),(第二条),...;
INSERT table_name (username, password, age) VALUE ("zhangsan", "123456", 12),("lisi", "123456", 18);

//INSERT [INTO] table_name SET username="wangwu",password="123456";只能插入单条
//INSERT [INTO] table_name [(列名1,列名2,...)] SELECT...

=========================删=========================
//DELETE FROM table_name [WHERE ...]

=========================改=========================
//UPDATE table_name SET username="zhangsan",password="654321",...[WHERE ...];

=========================查=========================
SELECT 列名 FROM 表名, where条件, group by分组条件, HAVING二级条件, order by排序, LIMIT条件

SELECT col_name[,col_name1,col_name2,...] [AS new_col_name]

[

FROM table_name

[WHERE where_condition]

[GROUP BY {col_name | position} [ASE | DESC], ...]

[HAVING where_condition]

[ORDER BY {col_name | expr | position} [ASC | DESC], ...]

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

]

SET NAMES gbk;//select结果用gbk编码显示,不会改变数据库编码方式
SELECT * FROM hehe\G;//以表格的形式显示结果


子查询:

SELECT * FROM hehe WHERE id = (SELECT id FROM xixi WHERE name = "zhangsan");

假如子查询中的(...)返回结果查过一行,则需要用关键字ANY、SOME、ALL三者之一来修饰。

SELECT * FROM hehe WHERE price = ANY (SELECT price FROM xixi WHERE name = "goods");


ANY SOME ALL
>、>= >min >min >max
<、<= <max <max <min
= 任意值 任意值
!=

任意值

其中=和!=可以用IN和NOT IN代替:

SELECT * FROM hehe WHERE price  IN (SELECT price FROM xixi WHERE name = "goods");

使用子查询结果
//INSERT table_name (col_name1,col_name2,...) SELECT ...


连接:

语法:... [LEFT | RIGHT] JOIN 表名 ON 连接条件 ...

内连接【JOIN】

外连接:左外连接【LEFT JOIN】、右外连接【RIGHT JOIN】、全连接【无】

自身连接【内连接自身table即可】

连接的条件可以使用ON或者WHERE关键字,但是一般使用ON来定义连接条件,WHERE来定义筛选条件。

//双表连接,显式
SELECT col_name [AS resultId] FROM table_name1 AS t1 JOIN table_name2 AS t2 ON t1.id = t2.id WHERE...
UPDATE table_name1 AS a JOIN table_name2 AS b ON a.id = b.number SET a.name = b.name;
DELETE t1 FROM table_name1 AS t1 LEFT JOIN (SELECT语句...也可嵌套连接和子查询和WHERE筛选)

//双表连接,隐式,内连接可以省略JOIN,左外连接和右外连接不可省略。
SELECT col_name [AS resultId] FROM table_name1 AS t1, table_name2 AS t2 ON t1.id = t2.id WHERE...

//双表外连接,把内连接的JOIN改成LEFT JOIN或者RIGHT JOIN即可。
//多表连接
SELECT col_name FROM table_name1 AS t1 
    JOIN table_name2 AS t2 ON t1.id = t2.number
    JOIN table_name3 AS t2 ON t1.pid = t3.number
    [...]





mysql有4种数据类型(整形、浮点型、字符型、日期时间型)。


© 著作权归作者所有

上一篇: git自用
下一篇: git
粉丝 1
博文 48
码字总数 39341
作品 0
南岸
私信 提问
关于mysql与redis实现读写分离的问题

如下是否正确,是不是已经有人从生产已经运用了? 1、应用程序读从redis读取,若没有再从mysql读取;问题是如何redis反应mysql的关系表现形式?有没有可以参考的代码例子。 2、应用程序增加和...

lyl2002
2016/08/26
972
4
Mysql注入小tips --持续更新中

    学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入。OWASP中,Sql注入危害绝对是Top1。花了一点时间研究了下Mysql类型的注入。     文章中的tips将会持续更新...

飘渺__红尘
2018/08/23
0
0
用Go-SQL-Driver访问mysql数据库

go语言提供了数据库访问的统一接口,但是自己自己的具体数据库访问驱动实现。 开源比较常用的有go-sql-driver/mysql(原来的go-mysql-driver)和mymysql 我个人比较倾向于go-sql-driver,实现...

lavafree
2013/03/10
1K
0
新特性解读 | MySQL 8.0 直方图

原创: 杨涛涛 MySQL 8.0 推出了histogram,也叫柱状图或者直方图。先来解释下什么叫直方图。 关于直方图 我们知道,在DB中,优化器负责将SQL转换为很多个不同的执行计划,完了从中选择一个最...

爱可生
07/09
22
0
node.js(koa2)+MySQL简易入门

安装Mysql 具体的安装MySQL省略。。。 配置密码 使用mysql模块或者node.js的orm时需要在mysql命令行中配置一下密码,才可以正常启动node.js连接 配置MySQL相关 1.安装mysql引擎 mysql模块是n...

风吟世界
08/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JAVA--高级基础开发

//定义两个线程,一个线程输出偶数,一个线程输出奇数,并且是交替输出 public class Test08 { public static void main(String[]args){ //创建当前类的对象 Life num = new L...

李文杰-yaya
12分钟前
16
0
[开源] .NETCore websocket 即时通讯组件---ImCore

ImCore 利用 webSocket 协议实现简易、高性能、集群即时通讯组件,支持点对点通讯、群聊通讯、上线下线事件消息等众多实用性功能。 Quick Start dotnet add package ImCore IM服务端 public...

2881099
15分钟前
1
0
java保留小数点后几位,不足的用0补

在 java 中,如果小数点最后位是0,double类型会把这个0去掉,比如4.30变成了4.3,这样导致有的界面显示不好看。 所以要转换下,如下方法 /** * 将double格式化为指定小数位的String,...

Gotcha_
19分钟前
2
0
spring boot 1.x升2.x的注意事项

记录升级过程中的一些错误。 本次升级为1.5.x 升级为2.1.4 ---------------------------------------------- 如果java版本低于8请不要升级,spring boot 2.0需要至少java 8才行。 ----------...

玄影镜心
20分钟前
3
0
关于Spring

Spring整体架构: Core Container Core Container(核心容器)包含Beans、Core、Context、EspL四个模块 Core和Beans是Spring的基础部分,提供IOC(控制反转)和DI(依赖注入) Core模块 该模...

java后端开发
27分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部