1.创建数据库
CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>]
[[DEFAULT] COLLATE <校对规则名>];
mysql> CREATE DATABASE IF NOT EXISTS test_db_char
-> DEFAULT CHARACTER SET utf8
-> DEFAULT COLLATE utf8_chinese_ci;
Query OK, 1 row affected (0.03 sec)
2. 查询数据库
SHOW DATABASES;
SHOW DATABASES [LIKE '数据库名'];
SHOW CREATE DATABASE查看 test_db 数据库的定义声明
mysql> SHOW DATABASES LIKE 'test_db';
mysql> SHOW DATABASES LIKE '%test%';
mysql> SHOW DATABASES LIKE 'db%';
mysql> SHOW CREATE DATABASE test_db;
3. 修改数据库
在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,数据库的这些特性都储存在 db.opt 文件中。
修改数据库的语法格式为:
ALTER DATABASE [数据库名] {
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}
mysql> ALTER DATABASE test_db
-> DEFAULT CHARACTER SET gb2312
-> DEFAULT COLLATE gb2312_chinese_ci;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW CREATE DATABASE test_db;
+----------+-------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gb2312 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
4. 删除数据库
DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。因此最好在删除数据库之前先将数据库进行备份。
mysql> DROP DATABASE test_db_del;
Query OK, 0 rows affected (0.57 sec)
mysql> DROP DATABASE test_db_del;
ERROR 1008 (HY000): Can't drop database 'test_db_del'; database doesn't exist
mysql> DROP DATABASE IF EXISTS test_db_del;
Query OK, 0 rows affected, 1 warning (0.00 sec)
5. 选择数据库
实现数据库的跳转:USE <数据库名>
该语句可以通知 MySQL 把<数据库名>所指示的数据库作为当前数据库。该数据库保持为默认数据库,直到语段的结尾,或者直到遇见一个不同的 USE 语句。
mysql> USE test_db;
Database changed
6. 单行多行注释
- 单行注释#或者–空格;#和–的区别就是:#后面直接加注释内容,而–的第 2 个破折号后需要跟一个空格符在加注释内容。
#从结果中删除重复行
SELECT DISTINCT product_id, purchase_price FROM Product;
-- 从结果中删除重复行
SELECT DISTINCT product_id, purchase_price FROM Product;
- 多行注释使用/* */注释符。
/*这条SELECT语句,
会从结果中删除重复行*/
SELECT DISTINCT product_id, purchase_price FROM Product;
7. 大小写规则
- SQL 关键字和函数名-不区分大小写。例如,下面这些语句都是等价的:
SELECT NOW();
select now();
sElEcT nOw();
- 数据库名、表名和视图名
MySQL 用服务器主机的底层文件系统所包含的目录和文件来表示数据库和表。因此,数据库名和表名的默认大小写取决于服务器主机的操作系统在命名方面的规定。
Windows 系统的文件名不区分大小写,所以运行在 Windows 系统上面的 MySQL 服务器也不用区分数据库名和表名的大小写。Linux 系统的文件名区分大小写,所以运行在 Linux 系统上的 MySQL 服务器需要区分数据库名和表名的大小写。对于 Mac OS X 平台,其文件系统中的名字是个例外,它们不区分大小写。
MySQL 会使用一个文件来表示一个视图,所以以上与表有关的也同样适用于视图。
3) 存储程序的名字
存储函数、存储过程和事件的名字都不区分大小写。触发器的名字要区分大小写,这一点与标准 SQL 的行为有所不同。
4) 列名和索引名
在 MySQL 里,列名和索引名都不区分大小写。例如,下面这些语句都是等价的:
SELECT name FROM student ;
SELECT NAME FROM student ;
SELECT nAmE FROM student ;
- 别名的名字
默认情况下,表的别名要区分大小写。SQL 语句中可以使用任意的大小写(大写、小写或大小写混用)来指定一个别名。如果需要在同一条语句里多次用到同一个别名,则必须让它们的大小写保持一致。
下表总结了 SQL 元素在 Windows 和 Linux 系统是否区分大小写。
Windows Linux
数据库名 否(忽略大小写) 是
表名 是
表别名 是
列名 否(忽略大小写)
列别名 否(忽略大小写)
变量名 是