文档章节

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
粉丝 2
博文 220
码字总数 112359
作品 0
常州
前端工程师
私信 提问

暂无文章

探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
29分钟前
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部