目录
说明:本文是对sql必知必会(第五版)的学习总结,具体使用的数据库是mysql.
这篇文章中主要对mysql的基础知识,用户相关命令,创建,更新,删除表等进行总结。
一:mysql的基础知识
1)数据库(database): 保存有组织的数据库。
2)表(table) : 特定类型的数据结果化清单。
存储在表中的数据是一种类型的数据或者一个清单的数据
3)主键(primary key):
表中每一行都应该有可以唯一标识自己的列,一列中唯一能够识别表中的每一行的值。
在设计表是应该总是设计带有主键,设置为主键瞒着的条件为:
- 任意两行都不具有相同的主键值
- 每个行都必须带有主键值(主键值列不允许为null)
- 主键列中的值不允许修改更新
- 主键值不能重用。
二:mysql用户有关命令
1)进入数据库:
mysql -u root -p
接着按照提示输入密码即可登陆成功
2)修改mysql密码
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
3)创建,查询,删除用户
// 创建
mysql> CREATE USER 'test1'@'localhost' identified by '1234567';
Query OK, 0 rows affected (0.00 sec)
//查询
mysql> SELECT USER FROM mysql.user; 查询所有用户
mysql> SHOW GRANTS For [email protected]'localhost'; 查询具体某个用户
//删除
mysql> DROP USER 'test1'@'localhost';
Query OK, 0 rows affected (0.01 sec)
三:创建更新删除数据表
3.1 创建表
可以使用交互式工具进行操作,这儿主要讲解使用mysql语句进行创建
利用 create table 表名 来创建表
需以下信息:
- 新表的名字,在关键字CREATE TABLE之后
- 表列的名字和定义,用逗号隔开。
- 该列是否可为null
3.2 创建《SQL必知必会》本书所需要的所有数据表
CREATE TABLE Customers
(
cust_id char(10) NOT NULL ,
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
);
-- -----------------------
-- 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
);
-- -------------------
-- Create Orders table
-- -------------------
CREATE TABLE Orders
(
order_num int NOT NULL ,
order_date datetime NOT NULL ,
cust_id char(10) NOT NULL
);
-- ---------------------
-- Create Products table
-- ---------------------
CREATE TABLE Products
(
prod_id char(10) NOT NULL ,
vend_id char(10) NOT NULL ,
prod_name char(255) NOT NULL ,
prod_price decimal(8,2) NOT NULL ,
prod_desc text NULL
);
-- --------------------
-- Create Vendors table
-- --------------------
CREATE TABLE Vendors
(
vend_id char(10) NOT NULL ,
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
);
-- -------------------
-- Define primary keys
-- -------------------
ALTER TABLE Customers ADD PRIMARY KEY (cust_id);