MySQL常见的操作

发表于:2020-10-15 09:32  作者:qq_41872905   来源:CSDN

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 数据库 SQL

  MySQL连接方式
  使用MySQL二进制方式连接
[root@host]#mysql -u root -p
Enter password:*******
  MySQL创建数据库
CREATE DATABASE 数据库名;
[root@host]#mysql - root -p
Enter password:****

mysql>create DATABASE runoob
  MySQL 删除数据库
  drop 命令删除数据库
  drop 命令格式:
drop database <数据库名>;
例如删除名为 RUNOOB 的数据库:

mysql> drop database RUNOOB;
  MySQL 选择数据库
  实例:从多个数据库中选取数据库runoob
[root@host]#mysql - root -p
Enter password:****
mysql>use runoob;
Database changed
mysql>
  MySQL 创建数据表
  创建MySQL数据表需要以下信息:
  表名
  表字段名
  定义每个表字段
  实例:创建数据表runoob_tbl
root@host#mysql -u root -p
Enter password:******
mysql>use runoob;
Database changed
mysql>CREATER TABLE runoob_tbl(
->runboob_id INT NOT NULL 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;
Query OK,0 rows affected(0.16 sec)
mysql->   
  MySQL 删除数据表
DROP TABLE table_name ;
  实例:删除数据表SQL语句为DROP TABLE:
root@host# mysql -u root -p
Enter password:*******
mysql> use RUNOOB;
Database changed
mysql> DROP TABLE runoob_tbl
Query OK, 0 rows affected (0.8 sec)
mysql>
  MySQL 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
  实例:向runoob_tbl数据表里插入数据
root@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 (0.01 sec)
mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 MySQL", "菜鸟教程", NOW());
Query OK, 1 rows affected, 1 warnings (0.01 sec)
mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("JAVA 教程", "RUNOOB.COM", '2016-05-06');
Query OK, 1 rows affected (0.00 sec)
mysql>
  读取数据表:
select  * from runoob_tbl;
  MySQL 查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
  查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。 SELECT
  命令可以读取一条或者多条记录。 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据 你可以使用 WHERE
  语句来包含任何条件。 你可以使用 LIMIT 属性来设定返回的记录数。
  你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
  MySQL WHERE 子句
  我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
  如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
  语法
  以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。 你可以在 WHERE 子句中指定任何条件。
  你可以使用 AND 或者 OR 指定一个或多个条件。 WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
  WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程
  MySQL UPDATE 更新
  如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。
  语法
  以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
  可以同时更新一个或多个字段。
  可以在 WHERE 子句中指定任何条件。
  可以在一个单独表中同时更新数据。
  当需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。
  实例:更新数据表中id=3的字段值
mysql> UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;
Query OK, 1 rows affected (0.01 sec)
 
mysql> SELECT * from runoob_tbl WHERE runoob_id=3;
+-----------+--------------+---------------+-----------------+
| runoob_id | runoob_title | runoob_author | submission_date |
+-----------+--------------+---------------+-----------------+
3   |   学习 C++   |  RUNOOB.COM   |   2016-05-06      |
+-----------+--------------+---------------+-----------------+
1 rows in set (0.01 sec)
  MySQL DELETE 语句
  语法: SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法:
DELETE FROM table_name [WHERE Clause]
  如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。 你可以在 WHERE 子句中指定任何条件
  您可以在单个表中一次性删除记录。
  实例以下实例将删除 runoob_tbl 表中 runoob_id 为3 的记录:
mysql> use RUNOOB;
Database changed
mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;
Query OK, 1 row affected (0.23 sec)
  MySQL LIKE 子句
  SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。 如果没有使用百分号 %, LIKE
  子句与等号 = 的效果是一样的。
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  实例:获取runoob_author字段中以COM为结尾的所有记录
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   | RUNOOB.COM    | 2015-05-01      |
| 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)
  MySQL连接的使用
  可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
  JOIN 按照功能大致分为如下三类:
  ***> INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。 LEFT
  JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。 RIGHT JOIN(右连接): 与 LEFT JOIN
  相反,用于获取右表所有记录,即使左表没有对应匹配的记录。***
  实例:在runoob数据库中有两张表tcount_tbl 和 runoob_tbl。
mysql> use RUNOOB;
Database changed
mysql> SELECT * FROM tcount_tbl;
+---------------+--------------+
| runoob_author | runoob_count |
+---------------+--------------+
| 菜鸟教程  | 10           |
| RUNOOB.COM    | 20           |
| Google        | 22           |
+---------------+--------------+
3 rows in set (0.01 sec)
 
mysql> SELECT * from runoob_tbl;
+-----------+---------------+---------------+-----------------+
| runoob_id | runoob_title  | runoob_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 1         | 学习 PHP    | 菜鸟教程  | 2017-04-12      |
| 2         | 学习 MySQL  | 菜鸟教程  | 2017-04-12      |
| 3         | 学习 Java   | RUNOOB.COM    | 2015-05-01      |
| 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
| 5         | 学习 C      | FK            | 2017-04-05      |
+-----------+---------------+---------------+-----------------+
5 rows in set (0.01 sec)
  l连接上面的两张表,读取unoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:
mysql> 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;
+-------------+-----------------+----------------+
| a.runoob_id | a.runoob_author | b.runoob_count |
+-------------+-----------------+----------------+
| 1           | 菜鸟教程    | 10             |
| 2           | 菜鸟教程    | 10             |
| 3           | RUNOOB.COM      | 20             |
| 4           | RUNOOB.COM      | 20             |
+-------------+-----------------+----------------+
4 rows in set (0.00 sec)
  MySQL NULL 值处理
  MySQL提供了三大运算符:
  S NULL: 当列的值是 NULL,此运算符返回 true。
  IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
  <=>: 比较操作符(不同于 = 运算符),
  当比较的的两个值相等或者都为 NULL 时返回 true。 关于 NULL的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
  在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。
  MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
  MySQL 导出数据
  使用 SELECT … INTO OUTFILE 语句导出数据
mysql> SELECT * FROM runoob_tbl 
    -> INTO OUTFILE '/tmp/runoob.txt';
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/runoob.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';
  MySQL 导入数据
  1、mysql 命令导入
  使用 mysql 命令导入语法格式为:
mysql -u用户名    -p密码    <  要导入的数据库数据(runoob.sql)
  实例:
# mysql -uroot -p123456 < runoob.sql
  2、source 命令导入
  source 命令导入数据库需要先登录到数库终端:
mysql> create database abc;      # 创建数据库
mysql> use abc;                  # 使用已创建的数据库 
mysql> set names utf8;           # 设置编码
mysql> source /home/abc/abc.sql  # 导入备份数据库
  3.使用 LOAD DATA 导入数据
  MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。
mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海信义律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2021, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道