文档章节

MySQL 常用命令

tianyawhl
 tianyawhl
发布于 2017/08/15 10:18
字数 1709
阅读 7
收藏 0

假如新建数据库lily

创建数据库  create database lily;
 
显示所有数据库  show databases;

选择数据库  use lily;

删除数据库 drop database lily;

删除数据库 delete database lily;

删除数据表:DROP TABLE runoob_tbl;
显示数据表 show tables;
SHOW COLUMNS FROM tbl_name [FROM db_name] 显示所有的字段

建表 create table myfirst_table(字段名1 类型,字段名2 类型,字段名3 类型);在选择数据库之后操作

改表的名称  rename table myfirst_table to newname;
创建数据表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;//字段也可以不用``符号包裹

插入数据

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES( value1, value2,...valueN );
NSERT INTO users (name, age) VALUES(‘姚明’, 25), (‘比尔.盖茨’, 50), (‘火星人’, 600);

 

查询数据  SELECT * FRAOM table_name;
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
select runoob_title,runoob_author from myfirst_table 

MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。
SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM';

MySQL UPDATE 查询  如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。.
UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
更新数据表中 runoob_id 为 3 的 runoob_author 字段值 update myfirst_table set runoob_author ="me" where runoob_id=3;

MySQL DELETE 语句 DELETE FROM runoob_tbl WHERE runoob_id=3;

MySQL LIKE 子句 相当于模糊匹配
SQL LIKE 子句中使用百分号(%)字符来表示任意字符,类似于UNIX或正则表达式中的星号 (*)。
如果没有使用百分号(%), LIKE 子句与等号(=)的效果是一样的。
select * from myfirst_table where runoob_anthor LIKE 'LY';    %就是代替的东西,可以放前面也可以放后面。
以下是我们将 runoob_tbl 表中获取 runoob_author 字段中以 COM 为结尾的的所有记录:
SELECT * from runoob_tbl  WHERE runoob_author LIKE '%COM'; 

MySQL UNION 操作符 

MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
注释:UNION 不能用于列出两个表中所有的country。如果一些网站和APP来自同一个国家,每个国家只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
SELECT country FROM Websites
UNION ALL
SELECT country FROM apps
ORDER BY country;

带有 WHERE 的 SQL UNION ALL
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country; 从2个表中选择字段,生成以第一表的字段为新的字段,内容是2个表符合条件的所有记录

MySQL GROUP BY 语句
SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;//COUNT(*)是新的字段
使用WITH ROLLUP
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)。
例如我们将以上的数据表按名字进行分组,再统计每个人登录的次数:
SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;
其中NULL表示所有人的登录次数,我们可以使用coalesce来设置一个可以取代NULL 的名称,coalesce语法 select coalesce(a,b,c)
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP; 

Mysql 连接的使用
接下来我们就使用MySQL的INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

MySQL LEFT JOIN
MySQL left join 与 join 有所不同。 MySQL LEFT JOIN 会读取左边数据表的全部数据,即便右边表无对应数据。
尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解 MySQL LEFT JOIN 的应用:
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

MySQL RIGHT JOIN
MySQL RIGHT JOIN 会读取右边数据表的全部数据,即便左边边表无对应数据。
尝试以下实例,以 runoob_tbl 为左表,tcount_tbl 为右表,理解MySQL RIGHT JOIN的应用:
mysql> SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

 

 MySQL NULL 值处理
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;

MySQL ALTER命令
如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段
ALTER TABLE testalter_tbl  DROP i;
MySQL 中使用 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型:
ALTER TABLE testalter_tbl ADD i INT;
如果你需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。
FIRST 和 AFTER 关键字只占用于 ADD 子句,所以如果你想重置数据表字段的位置就需要先使用 DROP 删除字段然后使用 ADD 来添加字段并设置位置。
如果需要修改字段类型及名称, 你可以在ALTER命令中使用 MODIFY 或 CHANGE 子句 。
例如,把字段 c 的类型从 CHAR(1) 改为 CHAR(10),可以执行以下命令:
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
ALTER TABLE tableName engine=myisam; 

mysql_fetch_row(),mysql_fetch_array()
这两个函数,返回的都是一个数组,区别就是第一个函数返回的数组是只包含值,我们只能$row[0],$row[1],这样以数组下标来读取数据,
而mysql_fetch_array()返回的数组既包含第一种,也包含键值
对的形式,我们可以这样读取数据,(假如数据库的字段是 username,passwd):
$row['username'], $row['passwd']

1: mysqli_fetch_assoc()用关键字索引取值。比如: 
row=result->fetch_assoc(); 
echo $row[‘username’];

2: 而mysqli_fetch_row()用数字索引取值。比如: 
row=result->fetch_row(); 
echo $row[0];

3.最后mysql_fetch_array既可以得到关联数组也可以得到索引数组,二者都有。

另外还有一个函数:mysqli_fetch_object()将一行取回到一个对象中,然后通过类的方式取值,比如: 
$row = $result->fetch_object(); 
echo $row->username;

 

在控制台的属性中-选项-勾选快速编辑模式 可以复制控制台的内容

如果mysql控制台错误提示是乱码,需要在my.ini文件中最后一行添加language=E:/wamp/bin/mysql/mysql5.6.17/share/english

wamp中修改MySQL数据库登录密码,
use mysql=》update user set password=PASSWORD('123') where user='root'=》重新启动服务;

修改密码后phpMyAdmin不能连接数据库,需要修改apps\phpmyadmin4.1.14里面的config.inc.php的密码

select * from et_data\G;//按每条记录展示\G前面有没有空格都行

 

© 著作权归作者所有

共有 人打赏支持
tianyawhl
粉丝 1
博文 207
码字总数 103497
作品 0
常州
前端工程师

暂无文章

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
33
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部