假如新建数据库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_tableMySQL 的 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前面有没有空格都行