当前位置:Gxlcms > 数据库问题 > 10)-MySQL数据库基础练习(答案版)

10)-MySQL数据库基础练习(答案版)

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

  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数据库基础练习(答案版)

标签:返回   prim   最小值   组合   指示   font   数组   名称   core   

人气教程排行