MySQL 8.0 Command Line Client - Unicode
数据库的创建和查看
#cmd中连接数据库(需配置环境变量),也可以直接使用MySQL自带命令行工具
> mysql -h -u root -p #host user password
#提示输入密码
> SHOW DATABASES; #DATABASES 别忘了s
> CREATE DATABASE database_name;
> USE database_name;
> SOURCE file_path.sql; #执行sql文件
>SHOW TABLES;
#SHOW 也可以用来显示表列:
SHOW COLUMNS FROM CUSTOMERS;
#结果如下
# +--------------+-----------+------+-----+---------+----------------+
# | Field | Type | Null | Key | Default | Extra |
# +--------------+-----------+------+-----+---------+----------------+
# | cust_id | int(11) | NO | PRI | NULL | auto_increment |
# | cust_name | char(50) | NO | | NULL | |
# | cust_address | char(50) | YES | | NULL | |
# | cust_city | char(50) | YES | | NULL | |
# | cust_state | char(5) | YES | | NULL | |
# | cust_zip | char(10) | YES | | NULL | |
# | cust_country | char(50) | YES | | NULL | |
# | cust_contact | char(50) | YES | | NULL | |
# | cust_email | char(255) | YES | | NULL | |
# +--------------+-----------+------+-----+---------+----------------+
# 9 rows in set (0.01 sec)
#DESCRIBE 语句 MySQL支持用 DESCRIBE 作为 SHOW COLUMNS FROM 的一种快捷方式。换句话说, DESCRIBE customers; 是SHOW COLUMNS FROM customers; 的一种快捷方式。
#SHOW CREATE DATABASE和SHOW CREATE TABLE ,分别用来显示创建特定数据库或表的MySQL语句;
>SHOW CREATE DATABASE test;
>SHOW CREATE TABLE orders;
>HELP SHOW; #显示允许的 SHOW 语句。
检 索 数 据
SELECT语句
- 检索单个列
SELECT prod_name
FROM products;
#返回的数据是未排序的,因此不同机器下显示的顺序可能不同
SQL语句不区分大小写,也忽略空格。
- 检索多个列
SELECT prod_id,vend_id,prod_name
FROM products;
- 检索所有列
SELECT *
FROM products;
#检索不需要的列通常会降低检索和应用程序的性能。
- 检索不同的行
SELECT DISTINCT vend_id
FROM products;
#DISTINCT 关键字指示MySQL只返回不同的值。
#注意:不能部分使用 DISTINCT
#DISTINCT 关键字应用于所有列而不仅是前置它的列。如果给出 SELECT DISTINCT vend_id,prod_price ,除非指定的两个列都不同,否则所有行都将被检索出来。
- 限制结果
# LIMIT 5 指示MySQL返回不多于5行
SELECT prod_name
FROM products
LIMIT 5;
#为得出下一个5行,可指定要检索的开始行和行数
SELECT prod_name
FROM products
LIMIT 5,5;
#LIMIT 5, 5 指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。(行数从0开始)
#行 0 :检索出来的第一行为行0而不是行1。因此, LIMIT 1,1将检索出第二行而不是第一行。
LIMIT 4 OFFSET 3 #意为从行3开始取4行,就像 LIMIT 3, 4 一样。
- 使用完全限定的表名
SELECT products.prod_name #指定了一个完全限定的列名
FROM products;
#表名也可以是完全限定的
SELECT products.prod_name
FROM crashcourse.products; #crashcourse为数据库名称