这个专栏用来讲解 MySQL 数据的基本语法和用法。本教程的目的是方便查询 MySQL 的用法,因此对于原理的讲解会偏少一些,但特点就是会有很多实验操作图。
本专栏使用的源材料是《MySQL必知必会》这本书的源代码。
1. 连接 MySQL 数据库
使用MySQL命令行连接数据库:
mysql -u root -p passwd -h myserver -P 3306
参数的含义:
-u
:指定用户名-p
:用户名的密码-h
:主机名,例如localhost-P
:使用指定的端口连接数据库
2. 创建数据库
在 mysql
终端使用命令 create database db_name
创建一个数据库:
这里我们需要创建 crashcourse
数据库。 然后使用这个数据库:use crashcourse
:
3. 执行脚本创建表
使用某个sql脚本文件创建表:source create.sql
。create.sql
文件必须在进入 mysql
命令行时所在的目录。
4. 查看某个表的结构:show命令
show 命令可以用来显示某个表的所有列:
还有一个更快捷的方法:
使用 help show
可以查看show命令的其它用法。下面只是show命令用法的部分。
create.sql 文件中的内容如下:
########################################
# MySQL Crash Course
# http://www.forta.com/books/0672327120/
# Example table creation scripts
########################################
########################
# Create customers table
########################
CREATE TABLE customers
(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name char(50) NOT NULL ,
cust_address char(50) NULL ,
cust_city char(50) NULL ,
cust_state char(5) NULL ,
cust_zip char(10) NULL ,
cust_country char(50) NULL ,
cust_contact char(50) NULL ,
cust_email char(255) NULL ,
PRIMARY KEY (cust_id)
) ENGINE=InnoDB;
#########################
# Create orderitems table
#########################
CREATE TABLE orderitems
(
order_num int NOT NULL ,
order_item int NOT NULL ,
prod_id char(10) NOT NULL ,
quantity int NOT NULL ,
item_price decimal(8,2) NOT NULL ,
PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;
#####################
# Create orders table
#####################
CREATE TABLE orders
(
order_num int NOT NULL AUTO_INCREMENT,
order_date datetime NOT NULL ,
cust_id int NOT NULL ,
PRIMARY KEY (order_num)
) ENGINE=InnoDB;
#######################
# Create products table
#######################
CREATE TABLE products
(
prod_id char(10) NOT NULL,
vend_id int NOT NULL ,
prod_name char(255) NOT NULL ,
prod_price decimal(8,2) NOT NULL ,
prod_desc text NULL ,
PRIMARY KEY(prod_id)
) ENGINE=InnoDB;
######################
# Create vendors table
######################
CREATE TABLE vendors
(
vend_id int NOT NULL AUTO_INCREMENT,
vend_name char(50) NOT NULL ,
vend_address char(50) NULL ,
vend_city char(50) NULL ,
vend_state char(5) NULL ,
vend_zip char(10) NULL ,
vend_country char(50) NULL ,
PRIMARY KEY (vend_id)
) ENGINE=InnoDB;
###########################
# Create productnotes table
###########################
CREATE TABLE productnotes
(
note_id int NOT NULL AUTO_INCREMENT,
prod_id char(10) NOT NULL,
note_date datetime NOT NULL,
note_text text NULL ,
PRIMARY KEY(note_id),
FULLTEXT(note_text)
) ENGINE=MyISAM;
#####################
# Define foreign keys
#####################
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_products FOREIGN KEY (prod_id) REFERENCES products (prod_id);
ALTER TABLE orders ADD CONSTRAINT fk_orders_customers FOREIGN KEY (cust_id) REFERENCES customers (cust_id);
ALTER TABLE products ADD CONSTRAINT fk_products_vendors FOREIGN KEY (vend_id) REFERENCES vendors (vend_id);
小结:
- 登入 mysql 的命令行;
- 查看有哪些数据库:
show databases;
- 使用指定的数据库:
use database_name;
- 当前所在数据库有哪些表:
show tables;
- 查看一个表的结构:
describe table_name;
或者show columns from table_name;
各位道友,如有收获,记得一键三连呐。
最后,给各位道友介绍一下使用国外虚拟卡开通一些国外服务的渠道,当前我在用的是 wildcard,使用我的注册邀请码 IOQ1YDHH
注册,能得 2 美刀,抵消一部分的开卡费用。同时,我也能得 1 美刀,赠人玫瑰,手有余香啊,哈哈。自己买个 Github Copilot
、ChatGPT Plus
简直不要太香。