当前位置:Gxlcms > 数据库问题 > 数据库SQL语句学习笔记(2)-检索数据库

数据库SQL语句学习笔记(2)-检索数据库

时间:2021-07-01 10:21:17 帮助过:3人阅读

database sells; #创建名叫sells的数据库 USE sells; #告诉mysql,我要开始使用这个数据库了 CREATE TABLE Customers #创建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 TABLE OrderItems #创建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 TABLE Orders #创建Orders表 ( order_num int NOT NULL , order_date datetime NOT NULL , cust_id char(10) NOT NULL ); CREATE TABLE Products #创建表Product ( 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 TABLE Vendors #创建表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 ); #设置主键 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); #设置外键 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); #插入记录 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, sales@villagetoys.com); 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, jjones@fun4all.com); 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, dstephens@fun4all.com); 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); 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); 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); INSERT INTO Orders(order_num, order_date, cust_id) VALUES(20005, 2012-05-01, 1000000001); INSERT INTO Orders(order_num, order_date, cust_id) VALUES(20006, 2012-01-12, 1000000003); INSERT INTO Orders(order_num, order_date, cust_id) VALUES(20007, 2012-01-30, 1000000004); INSERT INTO Orders(order_num, order_date, cust_id) VALUES(20008, 2012-02-03, 1000000005); INSERT INTO Orders(order_num, order_date, cust_id) VALUES(20009, 2012-02-08, 1000000001); 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); 查看代码

1. SELECT语句

关键字(keyword)作为SQL组成部分的保留字,不可以作为表或者列的名字。

使用SELECT语句,要清楚需要选择什么?从哪里选择的问题。

2. 检索单个列

SELECT prod_name FROM Products;

结果:技术分享        

分析:从Product表中检索一个名为prod_name的列。列名写在关键字SELECT之后,FROM关键字表明从哪个表中检索。这样返回的数据没有特定的顺序。

提示:(1)多条SQL语句必须以;分隔

(2)SQL语句不区分大小写,约定俗成的是关键字大写,表名和列名小写

(3)以分号结尾,看到分号就知道这一条语句结束了

3.检索多个列

SELECT关键字后给出多个列名,列名之间以逗号分隔,最后一个列名后不可以加逗号 

SELECT prod_id,prod_name,prod_price FROM Products;

结果: 技术分享

4.检索所有列

通配符星号(*)可以检索所有列

SELECT * FROM Products;

 5. 检索不同的值

 SELESTC语句返回所有匹配的行,但是有很多值重复出现,此时就要用到检索不同的值

SELECT DISTINCT vend_id FROM Products; 

注意:DISTINCT关键字作用于所有选择的列

6.限制结果

SELECT prod_name FROM Products LIMIT 5;

结果:技术分享

LIMIT 5指示MYSQL返回不超过5行数据

LIMIT 5 OFFSET 5从第5行起,检索5个数,注意第一行是0

简写为LIMIT 5,5 第一个数是OFFSET,第二个是LIMIT

7.使用注释

--嵌在行内

# 行内注释,在一行开始处使用#,这一整行都将作为注释

/*        */开始结束中间都作为注释

数据库SQL语句学习笔记(2)-检索数据库

标签:

人气教程排行