该【菜鸟教程】是由【鼠标】上传分享,文档一共【18】页,该文档可以免费在线阅读,需要了解更多关于【菜鸟教程】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。 : .
MySQL教程菜鸟教程
装数据库失败后的重装步骤!!!
--【创建数据库】
CREATE DATABASE < 数据库名>;
--使⽤mysqladamin创 建数据库
-- 使⽤普通⽤户,你可能需要特定的权限来创建或者删除MySQL数据库。
-- 所以我们这边使⽤⽤户登陆,root⽤户拥有最⾼权限,可以使⽤mysql mysqladmi命n 令来创建数据库。
-- 以下命令简单的演⽰了创建数据库的过程,数据名为RUNOOB:
[******@host]# mysqladmin -u root -p create RUNOOB
Enter password:******
--以上命令执⾏成功后会创建MySQL数据库RUNOOB.
--【删除数据库】
DROP DATABASE <数据库名>;
--使⽤mysqladmin命令在东段来执⾏删除命令。
-- 以下时上⾯创建的数据库
[******@host]# mysqladmin -u root -p drop RUNOOB
Enter password:******
--【注意】执⾏以上删除数据库命令后,会出现⼀个提⽰框,来确认是否针对删除数据库:
--Dropping the database is potentially a very bad thing to do.
--Any data stored in the database will be destroyed.
--Do you really want to drop the 'RUNOOB' database [y/N] y
--Database "RUNOOB" dropped
--【MySQL 选择数据库】
[******@host]# mysql -u root -p
Enter password:******
mysql> use RUNOOB;
Database changed
mysql>
--执⾏以上命令后,你就已经成功选择了 RUNOOB数 据库,在后续的操作中都会在 RUNOOB数 据库中执⾏。
--【注意】:所有的数据库名,表名,表字段都是区分⼤⼩写的。所以你在使⽤SQL命令时需要输⼊正确的名称。
--【MySQL 数据类型】
--MySQL⽀持多种类型,⼤致可以分为三类:数值、⽇期/时间和字符串(字符)类型。
--[数据类型]
--[⽇期/时间类型]
--[字符串(字符)类型]
--【MySQL创建数据表】
--创建MySQL数据表需要以下信息:
-- 表· 名
-- 表· 字段名
-- 定· 义每个表字段
CREATE TABLE TABLE_name(column_name column_type); : .
--举例
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;
--实例解析:
-- 如· 果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输⼊该字段的数据为NULL ,就会报错。
-- ·AUTO_INCREMENT定义列为⾃增的属性,⼀般⽤于主键,数值会⾃动加1。
-- ·PRIMARY KEY关键字⽤于定义列为主键。 您可以使⽤多列来定义主键,列间以逗号分隔。
-- ·ENGINE设 置存储引擎,CHARSET 设置编码。
--【MySQL 删除数据表】
DROP TABLE table_name;
--DROP TABLE runoob_tbl;
--执⾏成功后,我们使⽤以下命令,就看不到 runoob_tb表l 了:
mysql> show tables;
Empty set ( sec)
--【MySQL插⼊数据】
--语法:
INSERT INTO table_name(field1,field2, ···fieldN)
VALUES
(value1, value2, ···valueN);
--[注意]如果数据是字符型,必须使⽤SQL INSERT INTO 语句向MySQL数据表runoob_tbl
--实例
******@host# mysql -u root -p password;
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> INSERT INTO runoob_tbl
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> (学" 习 PHP", 菜" 鸟教程", NOW());
Query OK, 1 rows affected, 1 warnings ( sec)
mysql> INSERT INTO runoob_tbl
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> (学" 习 MySQL", 菜" 鸟教程", NOW());
Query OK, 1 rows affected, 1 warnings ( sec)
mysql> INSERT INTO runoob_tbl
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> ("JAVA教 程", "", '2016-05-06');
Query OK, 1 rows affected ( sec)
mysql>
--读取语句表
SELECT * FROM runoob_tbl;
--【MySQL查询数据】
--语法
SELECT column_name, column_name
FROM table_name
[WHERE Clause]
[LIMIT N][OFFSET M]
--SELECT 命令可以读取⼀条或者多条记录
--WHERE 语句来包含任何条件。
--LIMIT属 性来设定返回的记录数。
--OFFSET指定SELECT 语句开始查询的数据偏移量,默认情况下偏移量为0。 : .
--【MySQL WHERE⼦句】
--语法
SELECT field1, field2, ···fieldN FROM table_name1, table_name2···
[WHERE condition1] [AND [OR]] condition2·····
--可以在WHERE ⼦句中指定任何条件。
--可以使⽤AND或者OR指定⼀个或多个条件。
--WHERE⼦句也可以运⽤于SQL的DELETE 或者UPDATE命令
--SQL SELECT WHERE ⼦句
SELECT * FROM runoob_tbl WHERE runoob_autho菜r=鸟'教程';
--MySQL的 WHERE ⼦句的字符串⽐较是不区分⼤⼩写的。
-- 你可以使⽤ BINARY 关键字来设定 WHERE ⼦句的字符串⽐较是区分⼤⼩写的。
--BINARY关键字
mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='';
Empty set ( sec)
mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='';
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 | JAVA教 程 | | 2016-05-06 |
| 4 |学 习 Python | | 2016-03-06 |
+-----------+---------------+---------------+-----------------+
2 rows in set ( sec)
--【MySQL UPDATE 更新】
--语法
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
-- 更· 新⼀个或多个字段
-- 在· WHERE⼦句中指定任何条件
-- 在· ⼀个单独表中同时更新数据
--实例
mysql> UPDATE runoob_tbl SET runoob_tit学le习=' C++' WHERE runoob_id=3;
Query OK, 1 rows affected ( sec)
mysql> SELECT * from runoob_tbl WHERE runoob_id=3;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
| 3 |学 习 C++ | | 2016-05-06 |
+-----------+--------------+---------------+-----------------+
1 rows in set ( sec)
--【MySQL DELETE 语句】
--语法
DELETE FROM table_name [WHERE Clause]
-- 如· 果没有指定WHERE⼦句,MySQL表中的所有记录将被删除
-- 可· 以在单个表中⼀次性删除记录
--实例
mysql> use RUNOOB;
Database changed
mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;
Query OK, 1 row affected ( sec)
--【MySQL LIKE⼦句】
--语法
SELECT field1, filed2, field3,···fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] field2 = 'somevalue'
--如果没有使⽤%,LIKE⼦句与=的效果是⼀样的。
--LIKE 通常和%⼀同使⽤,类似⼀个元字符的搜索
--可以在DELETE 或UPDATE命令中使⽤WHERE··· ⼦句来指定条件
--实例 : .
mysql> use RUNOOB;
Database changed
mysql> SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 |学 习 Java | | 2015-05-01 |
| 4 |学 习 Python | | 2016-03-06 |
+-----------+---------------+---------------+-----------------+
2 rows in set ( sec)
--【MySQL UNION操作符】
--描述
--MySQL UNION操作符⽤于连接两个以上的SELECT 语句的结果组合到⼀个结果集合中,多个SELECT 语句会删除重复的数据。
--语法
SELECT expression1, expression2, ···expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ···expression_n
FROM tables
[WHERE conditions];
--DISTINCT:可选,删除结果集中重复的数据。默认情况下UNION操作符已经删除了重复数据,所以
--DISTINCT修饰符对结果没啥影响。
--ALL:可选,返回所有结果集,包含重复数据。
--演⽰数据库
--Websites
mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | / | 1 | USA |
| 2 |淘 宝 | / | 13 | CN |
| 3 |菜 鸟教程 | / | 4689 | CN |
| 4 |微 博 | / | 20 | CN |
| 5 | Facebook | / | 3 | USA |
| 7 | stackoverflow | / | 0 | IND |
+----+---------------+---------------------------+-------+---------+
--apps APP
mysql> SELECT * FROM apps;
+----+------------+-------------------------+---------+
| id | app_name | url | country |
+----+------------+-------------------------+---------+
| 1 | QQ APP | / | CN |
| 2 |微 博 APP | / | CN |
| 3 |淘 宝 APP | / | CN |
+----+------------+-------------------------+---------+
3 rows in set ( sec)
--综合以上两个表,SQL UNION实例 选取不同的country
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
--UNION不能⽤于列出两个表中所有的country。如果⼀些⽹站和APP来⾃同⼀个国家,每个国家指挥列出⼀次。
--UNION只会选取不容的值。请使⽤UNION ALL来选取重复的值!
--SQL UNION AL实L例
SELETE country FROM Websites
UNION ALL
SELETE country FROM apps
ORDER BY country;
--带有WHERE 的SQL UNION ALL
--下⾯SQL语句使⽤UNION ALL从“Website和s”"apps"表中选取所有的中国的数据(也有重复的值):
--实例
SELECT country, name FROM Websites
WHERE country='CN' : .
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
--【MySQL排序】
--我们知道从 MySQL表 中使⽤ SQL SELECT 语句来读取数据。
--语法
SELECT field1,field2,···fieldN FROM table_name1, table_name2···
ORDER BY field1 [ASC [DESC]],[field2···] [ASC [DESC]]
-- 可· 以使⽤任何字段作为排序的条件,从⽽返回排序后的查询结果。
-- 可· 以设定多个字段来排序。
-- 可· 以使⽤ASC或DESC 关键字来设置查询结果是按升序或降序排列。默认情况下,它是按升序[ASC]排列。
--在命令提⽰符中使⽤ORDER BY⼦句
--实例
--[ASC] 升序
mysql> use RUNOOB;
Database changed
mysql> SELECT * from runoob_tbl ORDER BY submission_date ASC;
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3 |学 习 Java | | 2015-05-01 |
| 4 |学 习 Python | | 2016-03-06 |
| 1 |学 习 PHP |菜 鸟教程 | 2017-04-12 |
| 2 |学 习 MySQL 菜| 鸟教程 | 2017-04-12 |
+-----------+---------------+---------------+-----------------+
4 rows in set ( sec)
--[DESC] 降序
mysql> SELECT * from runoob_tbl ORDER BY submission_date DESC;
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 1 |学 习 PHP |菜 鸟教程 | 2017-04-12 |
| 2 |学 习 MySQL 菜| 鸟教程 | 2017-04-12 |
| 4 |学 习 Python | | 2016-03-06 |
| 3 |学 习 Java | | 2015-05-01 |
+-----------+---------------+---------------+-----------------+
4 rows in set ( sec)
--解读以上:读取 runoob_tb表l 中所有数据并按 submission_date字 段的升序排列。
--【MySQL GROUP BY】语句
--GROUP BY 语句根据⼀个或多个列对结果集进⾏分组
--在分组的列上我们使⽤COUNT, SUM,AVG,等函数
--语法
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
mysql> SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;
--使⽤WITH ROLLUP
--WITH ROLLUP可 以实现在分组统计数据基础上再进⾏相同的统计(SUM,AVG,COUNT… )。
mysql> SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
--其中记录 NULL 表⽰所有⼈的登录次数。
--我们可以使⽤ coalesce来 设置⼀个可以取代
菜鸟教程 来自淘豆网m.daumloan.com转载请标明出处.