这个专栏用来讲解 MySQL 数据的基本语法和用法。本教程的目的是方便查询 MySQL 的用法,因此对于原理的讲解会偏少一些,但特点就是会有很多实验操作图。
本专栏使用的源材料是《MySQL必知必会》这本书的源代码。
文章目录
- 1. 连接 MySQL 数据库
- 2. 创建数据库
- 3. 执行脚本创建表
- 4. 查看某个表的结构:show命令
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
简直不要太香。