1. 程式人生 > >10)-MySQL數據庫基礎練習(答案版)

10)-MySQL數據庫基礎練習(答案版)

pri prim num select 的區別 連接 limit varchar alt

數據庫操作 1:// 查看mysql是否啟動 service mysql status 2:// 啟動mysql服務 service mysql start 3:// 重啟mysql服務 service mysql restart 4:// 停止mysql服務 service mysql stop 5:// 連接Mysql mysql -u root -p 6:// 創建數據庫book create database book 7:// 查看所有數據庫 show databases 8:// 刪除數據庫book drop database book 9:// 選擇數據庫book use book 表操作
10:// 創建一個數據庫表city,創建表字段city_id為自增主鍵,其余city_name、city_body、city_email為varchar類型、其中,city_name不能為空,其余信息補充完整 #創建表 create table city ( city_id int not null auto_increment, city_name varchar(100) not null, city_body varchar(100), city_email varchar(100), primary key (city_id) )engine=innodb default charset=utf8; 11://在city表中添加一個city_date字段,要求字段類型date,並且不能為空 #添加字段 alter table city add city_date date not null; 12:// 刪除city表中的city_date字段 #刪除字段 alter table city drop column city_date; 13://修改city表名稱為new_city #修改表名 alter table city rename new_city; 14://修改字段名 alter table student change 舊字段名 新字段名 類型; 數據查詢
15:// 查詢book表中book_id,book_name列 #查詢多個列 select book_id,book_name from book; 16://查詢book表中所有列 #查詢所有列 select * from book; 17://查詢book表的前15行數據 #查詢行數 select * from book limit 15; 18://查詢book表的第15行數據 #查詢指定行數 select * from book limit 14,14; 19://查詢book表中book_name字段內容,並去重查詢 #去重查詢 select distinct book_name from book; 20://按book表中book_name進行正序排序 #按字段排序(正序) select * from book order by book_name; 21://在book表中,先按book_id倒敘排序,再按book_name正序排序; #倒敘,多個字段排序 select * from book order by book_id DESC,book_name; 22://在book表中,查詢book_id等於3的學生,並僅返回學生姓名book_name字段 #條件查詢 select book_id,book_name from book where book_id=3; 23://在book表中,查詢所有book_email是空的列表數據 #篩選為null的數據 select * from book where book_email is null; 24://在book表中,查詢book_id大於10並且book_name為‘test’的數據; #組合條件查詢 select * from book where book_id > 10 and book_name=‘test‘; 25://在book表中,查詢book_id不等於3或者不等於5的數據 #組合條件查詢 select * from book where book_id != 3 or book_id != 5; 26://查詢book表中,book_id_不等於3和等於4的所有數據,使用in #in操作符使用 select * from book where book_id not in (3,4); 27://查詢book表中,book_name字段中,所有以‘小‘字開頭的書; #通配符使用 select * from book where book_name like ‘小%‘; 28://計算某列的平均值 #聚合函數:計算平均值 select avg(number) from score where student_id=1
只用於單個列 AVG()只能用來確定特定數值列的平均值,而且列名必須作為函數參數給出。為了獲得多個列的平均值,必須使用多個AVG()函數。
28補充://去重後,進行某列平均值計算 #去重計算平均值 select avg(distinct sname) from student; 29://返回某列的行數 #聚合函數:返回某列行數 select count(sname) from student; 30://返回列表中所有的行數 #聚合函數:返回所有行數 select count(*) from student; 31://返回某列的最大值 #聚合函數:返回列中最大值 select max(sname) from student; 32://返回某列的最小值 #聚合函數:返回列中最小值 select min(sname) from student; 33://返回某列值得和 #聚合函數:返回列值的和 select sum(sname) from student; 34://組合使用聚合函數 #聚合函數組合使用 select count(*) as count_number, avg(number) as avg_number, max(number) as max_number, min(number) as min_number, sum(number) as sum_number from score; 35://分組查詢 select vend_id, count(*) as num_prods from products group by vend_id; 36://分組查詢,增加查詢條件 select cust_id, count(*) as orders from orders group by cust_id having count(*) >= 2; 目前為止所學過的所有類型的where子句都可以用having來替代。唯一的差別是where過濾行,而having過濾分組。 這裏有另一種理解方法,where在數據分組前進行過濾,having在數據分組後進行過濾。這是一個重要的區別,where排除的行不包括在分組中。 37://分組排序 select order_num, sum(quantity*item_price) as ordertotal from orderitems group by order_num having sum(quantity*item_price) >= 50 order by ordertotal; 38://子查詢 select cust_name, cust_contact from customers where cust_id in (select cust_id from orders where order_num in (select order_num from orderitems where prod_id = ‘tnt2‘)); 可以把一條select語句返回的結果用於另一條select語句的where子句。 39://多表聯合查詢及創建聯結 select vend_name, prod_name, prod_price from vendors, products where vendors.vend_id = products.vend_id order by vend_name, prod_name; SELECT語句與前面所有語句一樣指定要檢索的列。這裏,最大的差別是所指定的兩個列(prod_name和prod_price)在一個表中,而另一個列(vend_name)在另一個表中。 現在來看FROM子句。與以前的SELECT語句不一樣,這條語句的FROM子句列出了兩個表,分別是vendors和products。它們就是這條SELECT語句聯結的兩個表的名字。這兩個表用WHERE子句正確聯結,WHERE子句指示MySQL匹配vendors表中的vend_id和products表中的vend_id。 可以看到要匹配的兩個列以vendors.vend_id和products.vend_id指定。這裏需要這種完全限定列名,因為如果只給出vend_id,則MySQL不知道指的是哪一個(它們有兩個,每個表中一個)。 40://聯合多個表查詢 select prod_name, vend_name, prod_price, quantity from orderitems, products, vendors where products.vend_id = vendors.vend_id and orderitems.prod_id = products.prod_id and order_num = 20005;

10)-MySQL數據庫基礎練習(答案版)