MySQL笔记
MySQL管理
操作数据库
mysql> use RUNOOB;
选择要操作的Mysql数据库,使用该命令后所有Mysql命令都只针对该数据库。
展示全部数据库
SHOW DATABASES;
列出 MySQL 数据库管理系统的数据库列表。
展示数据表
SHOW TABLES;
显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
显示数据表属性
SHOW COLUMNS FROM 数据表;
显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
显示数据表的详细索引信息
SHOW INDEX FROM 数据表;
显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
MySQL连接
MySQL连接
mysql -u root -p
MySQL退出
exit;
MySQL创建数据库
CREATE DATABASE 数据库名;
MySQL删除数据库
drop命令删除数据库
drop database <数据库名>;
MySQL 选择数据库
use <数据库名>;
MySQL 创建数据表
创建MySQL数据表的SQL通用语法
CREATE TABLE table_name ();
案例
create table student(
id int comment '编号',
name varchar(32) comment '姓名',
age int comment '年龄',
class varchar(20) comment '班级');
删除数据表
删除MySQL数据表的通用语法
DROP TABLE table_name ;
MySQL 插入数据
向MySQL数据表插入数据通用的 INSERT INTO SQL语法
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
案例
INSERT INTO runoob_tbl
##下面这行可以省略,写几个就添加几个数据
-> (runoob_title, runoob_author, submission_date)
-> VALUES
-> ("学习 PHP", "菜鸟教程", NOW());
##插入多行
INSERT INTO runoob_tbl
-> VALUES
-> ("学习 PHP", "菜鸟教程", NOW()),
-> ("学习 PHP", "菜鸟教程", NOW()),
-> ("学习 PHP", "菜鸟教程", NOW());
读取数据表
select * from <数据表名>;
MySQL 查询数据
查询数据通用的 SELECT 语法
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
注意
-
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
-
SELECT 命令可以读取一条或者多条记录。
-
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
-
你可以使用 WHERE 语句来包含任何条件。
-
你可以使用 LIMIT 属性来设定返回的记录数。
-
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
案例
select * from <数据表名>;
##可以吧*换成查询的字段,也可以多个
##例如
select id,name form <数据表名>;
查询字段
desc <数据表名>;
MySQL WHERE 子句
注意
- 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
- 你可以在 WHERE 子句中指定任何条件。
- 你可以使用 AND 或者 OR 指定一个或多个条件。
- WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
操作符 | 描述 | 实例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
案例
SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程';
MySQL UPDATE 更新
UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
案例
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]
案例
mysql> use RUNOOB;
Database changed
mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;
Query OK, 1 row affected (0.23 sec)
MySQL LIKE 子句
SELECT 语句使用 LIKE 子句从数据表中读取数据的通用语法
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
案例
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 ALTER命令
删除
ALTER TABLE testalter_tbl DROP i;
如下命令使用了 ALTER 命令及 DROP 子句来删除以上创建表的 i 字段
添加
ALTER TABLE testalter_tbl ADD i INT;
MySQL 中使用 ADD 子句来向数据表中添加列,如下实例在表 testalter_tbl 中添加 i 字段,并定义数据类型
如果你需要指定新增字段的位置,可以使用MySQL提供的关键字 FIRST (设定位第一列), AFTER 字段名(设定位于某个字段之后)。
尝试以下 ALTER TABLE 语句, 在执行成功后,使用 SHOW COLUMNS 查看表结构的变化:
案例
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
修改字段类型及名称
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
把字段 c 的类型从 CHAR(1) 改为 CHAR(10)
ALTER TABLE testalter_tbl CHANGE i j BIGINT;
使用 CHANGE 子句, 语法有很大的不同。 在 CHANGE 关键字之后,紧跟着的是你要修改的字段名,然后指定新字段名及类型