博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sql学习之基础(MySql)
阅读量:6302 次
发布时间:2019-06-22

本文共 4698 字,大约阅读时间需要 15 分钟。

1 --#创建一个数据库  2 create database excise01;  3 --#查看所有数据库  4 show databases;  5 --#查看刚建的数据库  6 show create database excise01;  7 --#建表  8 use excise01;  9 create table stu( 10 id int not null primary key auto_increment, --#not null-->非空,primary key-->主键,auto_increment-->自增,都是约束 11 name varchar(20) unique, --#unique-->唯一,不能重复(约束) 12 birthday date, 13 sal float 14 ); 15 show tables;  --#查看表 16 show create table stu; --#查看表中信息 17 --#修改表 18 alter table stu add age int; --# 新增一个age,类型为int 19 alter table stu change age new_age int; --#修改"age"为"new_age" 20 alter table stu drop new_age; --#删除列 21 alter table stu rename new_name; --#修改表名 22 --#删除表 23 drop table stu; 24 --#查看表结构 25 desc stu; 26 DML: 27 --#往stu表中插入一条记录 28 insert into stu (id,name,birthday,sal) values(1,'itcast',2011-09-23,8000.00); 29 --#查看记录 30 select * from stu; 31 --#修改记录 32 update stu set sal=10000.00 33 --#删除记录 34 delete from stu; --#删除表中的所有内容(表还在) 35 --#设置编码集,set方法只对当前窗口有效. 36 set character_set_client=gb2312; 37 set character_set_results=gb2312; 38   39 --#创建数据sql脚本如下 40  use day01; 41   42  CREATE TABLE grade ( 43    id int(11) NOT NULL auto_increment  PRIMARY KEY , 44    name varchar(20) NOT NULL, 45    math double, 46    english double, 47    chinese double 48  ); 49   50  set character_set_client=gb2312; 51  set character_set_results=gb2312; 52    53  insert into grade(name,math,english,chinese) values('赵一',67,45,78); 54  insert into grade(name,math,english,chinese) values('郭二',77,83,89); 55  insert into grade(name,math,english,chinese) values('张三',82,75,60); 56  insert into grade(name,math,english,chinese) values('李四',67,45,78); 57  insert into grade(name,math,english,chinese) values('王五',90,89,91); 58  insert into grade(name,math,english,chinese) values('马六',33,23,56); 59  insert into grade(name,math,english,chinese) values('冯七',69,34,47); 60  insert into grade(name,math,english,chinese) values('贾八',NULL,NULL,NULL); 61 --#查询语句 62  --#过滤表中重复数据 63  select distinct(math) from grade; --#distinct表示过滤重复数据 64  --#给每个学生的数学加10分 65  select math+10 from grade; 66  --#查询姓名为某个值的学生成绩 67  select * from grade where name='lisi'; 68  --#统计每个学生的总分 69  select math+english+chinese as 总分 from grade; 70  --#查询英语分数在80-90之间的同学 71  select name, english from grade where english>=80 and english<=90; 72  select name, english from grade where english between 80 and 90; 73  select name, english from grade where english>=80 && english<=90; 74  --#查询数学分数为89,90,91的同学 75  select name, math from grade where math=89 or math=90 or math=91; 76  select name, math from grade where math in(89,90,91); 77  select name, math from grade where math=89 || math=90 || math=91; 78  --#查询所有姓李的学生(模糊查询,更多应用在数据的检索中) 79   --# '%李%'-->匹配所有有李字的 80   --# '%李'--> 匹配最后一个字是"李"的,百分号'%'匹配多个字符 81   --# '李_'--> 后边是一个下划线'_'的,只能查到李后边是一个字的 82  select * from grade where name like '李_'; 83  select * from grade where name like '%李%'; 84  select * from grade where name like '李%'; 85  --# 对数学成绩排序后输出 86  select math from grade order by math; --#默认是升序排序 87  select math from grade order by math asc; --#(同上一行,升序排序是asc,不写默认就是asc) 88   89  select math from grade order by math desc; 90  --#统计人数 91   --#用'*'来统计的话,可以把所有的统计全了,包括表中的null值. 92   --#如果按照某一项来统计,如:"math",这样,可能把其中值为'null'的统计不上,所以一般情况下都用*来统计. 93   select count(*) as 总人数 from grade; 94   select count(math) as 总人数 from grade; 95   96  --#统计数学成绩大于90的学生有多少个 97  select count(*) as 人数 from grade where math>90; 98  --#统计一个班级数学总成绩 99  select sum(math) as 数学总成绩 from grade;100  --#统计一个班各科的总成绩101  select sum(math) as 数学总成绩, sum(english) as 英语总成绩,sum(chinese) as 语文总成绩 from grade;102  --#统计一个班的语文,英语,数学的成绩总和(as可以省略)103  select sum(math)+sum(english)+sum(chinese) as 所有成绩总和 from grade;104  select sum(math+english+chinese) as 所有成绩总和 from grade;105  --#统计一个班语文成绩平均分106  select sum(chinese)/count(*) 语文平均成绩 from grade; --#(常用的)107  select avg(chinese) 语文平均分 from grade; --#avg大多情况下不用,因为用avg统计的是按照本列统计的,如果有null值的话,统计不到,结果会比正常的大108  --#求班级最高分和最低分109  select max(math) 最高分, min(math) 最低分 from grade;110  111  112 -----------------------------字符函数-------------------------------------------113  select char_length('abcdef'); --#字符串长度114  select instr('abcdefghij','f'); --#查询后边字符所在位置115  116  --#从字符串'helloworld'的第6个位置开始插入,插入的是'haha',替换后边几个位置,是1就是一个,0就是不替换117  select insert('helloworld',6,1,'haha');118  select substring('hello world!!',2,4); --#-->从第2个位置截取,截取4个字符,结果为:ello119  select substring('hello world!!,3'); --#-->从第3个字符开始,把后边所有都截取,结果为:llo world!!120  --#查询数学成绩最高手学生的姓名121  select name from grade where math=(select max(math) from grade);122  123  --#按照数学成绩的降序排序选取第一个就是最高分124  select name from grade order by(math) desc limit 0,1; --#limit表示从第1行开始选择1行

 

转载于:https://www.cnblogs.com/zunpeng/p/3297933.html

你可能感兴趣的文章
javascript 对象
查看>>
Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
查看>>
Echart:前端很好的数据图表展现工具+demo
查看>>
CATransform3D iOS动画特效详解
查看>>
Linux VNC黑屏(转)
查看>>
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>
shell学习之用户管理和文件属性
查看>>
day8--socket网络编程进阶
查看>>
node mysql模块写入中文字符时的乱码问题
查看>>
仍需"敬请期待"的微信沃卡
查看>>
分析Ajax爬取今日头条街拍美图
查看>>
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>