sql must know must know (fifth edition) learning summary (1) - mysql preliminary knowledge summary

table of Contents

One: the basic knowledge of mysql

Two: mysql user related commands

Three: create update delete data table

3.1 Create a table

3.2 Update table

3.3 Delete table

Four. Insert, update, delete data

4.1 Data Insertion

4.2 Update data

4.3 Delete data


Note: This article is a summary of the study of sql must know must know (fifth edition), the specific database used is mysql.

           This article mainly summarizes the basic knowledge of mysql, user-related commands, creating, updating, and deleting tables.

One: the basic knowledge of mysql

1) Database: Store an organized database.

2) Table: A list of results of specific types of data.

                      The data stored in the table is a type of data or a list of data

3) Primary key:

     Each row in the table should have a column that can uniquely identify itself, and the value in a column that can uniquely identify each row in the table .

    The design table should always be designed with a primary key. The conditions for setting the primary key to hide are:

  • No two rows have the same primary key value
  • Each row must have a primary key value (the primary key value column is not allowed to be null)
  • The value in the primary key column is not allowed to be modified and updated
  • The primary key value cannot be reused.

Two: mysql user related commands

1) Enter the database:

mysql -u root -p
接着按照提示输入密码即可登陆成功

2) Modify the mysql password

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

3) Create, query, delete users

// 创建
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)

Three: create update delete data table

3.1 Create a table

You can use interactive tools to operate, here is mainly to explain the use of mysql statement to create

Use the create table table name to create a table

The following information is required:

  • The name of the new table, after the keyword CREATE TABLE
  • The names and definitions of the table columns are separated by commas.
  • Whether the column can be null

3.2 Create all the data tables required by the book "SQL Must Know and Know"


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);
ALTER TABLE OrderItems ADD PRIMARY KEY (order_num, order_item);
ALTER TABLE Orders ADD PRIMARY KEY (order_num);
ALTER TABLE Products ADD PRIMARY KEY (prod_id);
ALTER TABLE Vendors ADD PRIMARY KEY (vend_id);


-- -------------------
-- 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);

format:

create table name{

Column name one data type can be null

Column name one data type can be null

}

[Note]: Only columns that do not allow null values ​​can be used as primary keys, and columns that allow null values ​​cannot be used as unique identifiers.

3.2 Update table

Use  ALTER TABLE sentences to update content, but there are a few places to pay attention to

  • The data contained in the table does not need to be updated.
  • All DBMS allow tables to add columns
  • Many DBMSs do not allow deleting and updating columns
  • The surface to be changed is given after ALTER TABLE.
  • List of changes made

#Add a column to the Vendors table, the data type is CHAR

ALTER TABLE Vendors
ADD vend_phone CHAR(20);

# Delete the vendor_phone column of the Vendors table

ALTER TABLE Vendors
DROP COLUMN vend_phone;

3.3 Delete table

drop table + table name

DROP TABLE CustCopy;

Four. Insert, update, delete data

4.1 Data Insertion

Use insert into ...... values ​​statement for data insertion

insert is used to insert (add) rows to the database, corresponding to the following three situations.

  • Insert a complete line
  • Insert part of the row
  • Insert some query results

1) Insert a complete line

# Write SQL statements that depend on a specific column order. This sometimes makes mistakes, but it is easy to write.

INSERT INTO Customers
VALUES('1000000006',
     'Toy Land',
     '123 Any Street',
     'New York',
     'NY',
     '11111',
     'USA',
     NULL,
     NULL);

The above method is generally not recommended, we generally use the specified order to insert data, that is, specify the column name, specify the data

INSERT INTO Customers(cust_id,
     cust_contact,
     cust_email,
     cust_name,
     cust_address,
     cust_city,
     cust_state,
     cust_zip)
     VALUES('1000000009',
     NULL,
     NULL,
     'Toy Land',
     '123 Any Street',
     'New York',
     'NY',
     '11111');

2) Insert some rows

Specify a column to provide a value, the other does not provide a value.

INSERT INTO Customers(cust_id,
     cust_contact,
     cust_email,
     cust_name,
     cust_address,
    )
     VALUES('1000000009',
     NULL,
     NULL,
     'Toy Land',
     '123 Any Street'     
     );

3) Insert some query results

INSERT INTO CustomersNew(cust_id,
    cust_contact,
    cust_email,
    cust_name,
    cust_address,
    cust_city,
    cust_state,
    cust_zip,
    cust_country)
    SELECT cust_id,
    cust_contact,
    cust_email,
    cust_name,
    cust_address,
    cust_city,
    cust_state,
    cust_zip,
    cust_country
    FROM Customers;

Role: CustomersNewImport all dataCustomers

【注意】:没有使用values关键字

补充:此处将我们后面需要用到的Customers,Orders,ItemOrders,vendors,Products插入数据的代码呈现出来


INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000001', 'Village Toys', '200 Maple Lane', 'Detroit', 'MI', '44444', 'USA', 'John Smith', '[email protected]');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES('1000000002', 'Kids Place', '333 South Lake Drive', 'Columbus', 'OH', '43333', 'USA', 'Michelle Green');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000003', 'Fun4All', '1 Sunny Place', 'Muncie', 'IN', '42222', 'USA', 'Jim Jones', '[email protected]');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact, cust_email)
VALUES('1000000004', 'Fun4All', '829 Riverside Drive', 'Phoenix', 'AZ', '88888', 'USA', 'Denise L. Stephens', '[email protected]');
INSERT INTO Customers(cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country, cust_contact)
VALUES('1000000005', 'The Toy Store', '4545 53rd Street', 'Chicago', 'IL', '54545', 'USA', 'Kim Howard');

-- ----------------------
-- Populate Vendors table
-- ----------------------
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('BRS01','Bears R Us','123 Main Street','Bear Town','MI','44444', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('BRE02','Bear Emporium','500 Park Street','Anytown','OH','44333', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('DLL01','Doll House Inc.','555 High Street','Dollsville','CA','99999', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('FRB01','Furball Inc.','1000 5th Avenue','New York','NY','11111', 'USA');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('FNG01','Fun and Games','42 Galaxy Road','London', NULL,'N16 6PS', 'England');
INSERT INTO Vendors(vend_id, vend_name, vend_address, vend_city, vend_state, vend_zip, vend_country)
VALUES('JTS01','Jouets et ours','1 Rue Amusement','Paris', NULL,'45678', 'France');

-- -----------------------
-- Populate Products table
-- -----------------------
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR01', 'BRS01', '8 inch teddy bear', 5.99, '8 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR02', 'BRS01', '12 inch teddy bear', 8.99, '12 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BR03', 'BRS01', '18 inch teddy bear', 11.99, '18 inch teddy bear, comes with cap and jacket');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG01', 'DLL01', 'Fish bean bag toy', 3.49, 'Fish bean bag toy, complete with bean bag worms with which to feed it');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG02', 'DLL01', 'Bird bean bag toy', 3.49, 'Bird bean bag toy, eggs are not included');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('BNBG03', 'DLL01', 'Rabbit bean bag toy', 3.49, 'Rabbit bean bag toy, comes with bean bag carrots');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RGAN01', 'DLL01', 'Raggedy Ann', 4.99, '18 inch Raggedy Ann doll');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RYL01', 'FNG01', 'King doll', 9.49, '12 inch king doll with royal garments and crown');
INSERT INTO Products(prod_id, vend_id, prod_name, prod_price, prod_desc)
VALUES('RYL02', 'FNG01', 'Queen doll', 9.49, '12 inch queen doll with royal garments and crown');

-- ---------------------
-- Populate Orders table
-- ---------------------
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20005, '2020-05-01', '1000000001');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20006, '2020-01-12', '1000000003');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20007, '2020-01-30', '1000000004');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20008, '2020-02-03', '1000000005');
INSERT INTO Orders(order_num, order_date, cust_id)
VALUES(20009, '2020-02-08', '1000000001');

-- -------------------------
-- Populate OrderItems table
-- -------------------------
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 1, 'BR01', 100, 5.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20005, 2, 'BR03', 100, 10.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 1, 'BR01', 20, 5.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 2, 'BR02', 10, 8.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20006, 3, 'BR03', 10, 11.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 1, 'BR03', 50, 11.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 2, 'BNBG01', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 3, 'BNBG02', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 4, 'BNBG03', 100, 2.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20007, 5, 'RGAN01', 50, 4.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 1, 'RGAN01', 5, 4.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 2, 'BR03', 5, 11.99);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 3, 'BNBG01', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 4, 'BNBG02', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20008, 5, 'BNBG03', 10, 3.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 1, 'BNBG01', 250, 2.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 2, 'BNBG02', 250, 2.49);
INSERT INTO OrderItems(order_num, order_item, prod_id, quantity, item_price)
VALUES(20009, 3, 'BNBG03', 250, 2.49);

4.2 Update data

Use update....set statement

UPDATE Customers
SET cust_email = '[email protected]'
WHERE cust_id = '1000000005';

4.3 Delete data

DELETE FROM Customers 
WHERE cust_id = '1000000009';

Used to delete the specified data in the table

Supplement: the principle of update and deletion

  • Both UPDATE and DELETE statements have a WHERE clause. If the WHERE clause is omitted, it will be applied to all rows, so unless all rows are updated
  • Ensure that each table has a primary key, and WHERE is applied to the primary key.
  • Before using UPDATE and DELETE statements, first SELECT to test to ensure that the WHERE clauses are written correctly.
  • Use an enforced referential integrity database to prevent accidental deletion of rows.
  • Now MYSQL does not have UPDATE or DELETE clauses with WHERE clauses.

Guess you like

Origin blog.csdn.net/yezonghui/article/details/112858475