美文网首页
Mysql 使用命令及 sql 语句示例

Mysql 使用命令及 sql 语句示例

作者: 风一样的我 | 来源:发表于2016-10-21 10:41 被阅读0次

    1.1前言

    Mysql是数据库开发使用的主要平台之一。sql的学习掌握与使用是数据库开发的基础,此处展示详细sql语句的写法,及各种功能下的sql语句。

    基本命令使用是这样的。当然sql语句也可在其他平台使用。此处不多说明;

    SQL语句详细如下:

    1.2一、数据库操作

    创建一个名称为mydb1的数据库

    create database mydb1;

    showdatabases;

    创建一个使用utf-8字符集的mydb2数据库。

    create database mydb2 charactersetutf8;

    创建一个使用utf-8字符集,并带校对规则的mydb3数据库。

    create database mydb3 charactersetutf8 collate utf8_general_ci;

    查看前面创建的mydb2数据库的定义信息

    showcreate database mydb2;

    删除前面创建的mydb1数据库

    drop database mydb1;

    查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312;

    alter database mydb2 charactersetgb2312;

    showcreate database mydb2;

    使用当前数据库mydb1,即想对当前数据库进行操作之前使用的命令

    use mydb1;

    1.3二、表的操作

    1>表的创建演示

    创建一个员工表

    use mydb2;

    create table employee

    (

    idint,

    name varchar(40),

    sex varchar(4),

    birthday date,

    entry_date date,

    job varchar(40),

    salary decimal(8,2),

    resume text

    );

    showtables;查看库的所有表(查看库里的表要先打开库)

    showcreate table employee;查看表的创建细节

    descemployee;看表结构

    2>对表的基本操作:增、删、改、查

    在上面员工表的基本上增加一个image列。

    altertableemployee add image varchar(20);

    修改job列,使其长度为60。

    altertableemployee modify job varchar(60);

    删除sex列

    altertableemployee drop sex;

    表名改为user。

    renametableemployee to user;

    修改表的字符集为utf-8

    altertableuser character set utf8;

    列名name修改为username

    altertabletest changecolumn address address1 varchar(30)

    删除表

    droptableuser;

    3>增加、插入记录的sql语句详细

    使用insert语句向表中插入三个员工的信息。

    renametable user to employee;

    insert into employee(id,username,birthday,entry_date,job,salary,resume)values(1,'aaa','1980-09-09','1980-09-09','bbb',90,'aaaaa');

    select* from employee;

    插入数据的细节1

    insert into employeevalues(1,'aaa','1980-09-09','1980-09-09','bbb',90,'aaaaa');

    插入数据的细节2

    insert into employeevalues('1','aaa','1980-09-09','1980-09-09','bbb','90','aaaaa');

    插入数据的细节3(插入中文)

    要告诉mysql客户采用gb2312编码

    show variables like'chara%';

    set character_set_client=gb2312;

    insert into employee(id,username)values('3','张三');

    要想查看时不乱码

    show variables like'chara%';

    set character_set_results=gb2312;

    select* from employee;

    4>删除记录的sql语句详细

    删除表中名称为’zs’的记录。

    deletefromemployee where username='bbb';

    删除表中所有记录。

    deletefromemployee;

    使用truncate删除表中记录。

    truncate table employee;

    5>修改记录的sql语句详细

    将所有员工薪水修改为5000元。

    update employeesetsalary=5000;

    将姓名为’bbb’的员工薪水修改为3000元。

    update employeesetsalary=3000whereusername='bbb';

    将姓名为’bbb的员工薪水修改为4000元,job改为ccc。

    update employeesetsalary=4000,job='ccc'whereusername='bbb';

    将bbb的薪水在原有基础上增加1000元。

    update employeesetsalary=salary+1000whereusername='bbb';

    更新要注意的问题

    update employeesetusername='ccc',salary=9000,birthday='1980-09-09',.....................

    updatewhereid=1;

    6>查询记录的sql语句详细

    查询表中所有学生的信息。

    select*fromstudent;

    查询表中所有学生的姓名和对应的英语成绩。

    selectname,englishfromstudent;

    过滤表中重复的英语数据。

    selectdistinctenglishfromstudent;

    在所有学生总分上加10分特长分。

    selectname,(chinese+english+math)+10fromstudent;

    统计每个学生的总分。

    selectname,(chinese+english+math)fromstudent;

    关于排序

    将对象成绩过去

    统计大于该成绩的人数即可

    统计数学成绩大于90的学生有多少个?

    selectcount(*)fromstudentwheremath>80;

    使用别名表示学生分数。

    selectname as姓名,(chinese+english+math)+10as总分fromstudent;

    selectname姓名,(chinese+english+math)+10总分fromstudent;

    查询姓名为wu的学生成绩

    select*fromstudentwherename='王五';

    查询英语成绩大于90分的同学

    select*fromstudentwhereenglish>'90';

    查询总分大于200分的所有同学

    selectnamefromstudentwhere(chinese+english+math)>200;

    查询英语分数在80-90之间的同学。

    selectnamefromstudentwhereenglish>80andenglish<90;

    selectnamefromstudentwhereenglish between80and90;==selectnamefromstudentwhereenglish>=80andenglish<=90;

    查询数学分数为89,90,91的同学。

    select*fromstudentwheremath in(89,90,91);

    查询所有姓李的学生成绩。

    select*fromstudentwherename like '李%';

    select*fromstudentwherename like '李_';

    查询数学分>80,语文分>80的同学。

    select*fromstudentwheremath>80andchinese>80;

    分页查询,查询从第8条记录开始的3条记录;即:第8、9、10三条记录

    intfrom=2;

    intend =10;

    String sql ="select * from student limit "+from+","+end;//字符串类型的语句

    select*fromstudent limit8,3;

    1.4三、对数据记录的操作

    查询统计排序等相关处理的sql语句

    对数学成绩排序后输出。

    selectname,mathfromstudent orderbymath;

    对总分排序后输出,然后再按从高到低的顺序输出

    selectname姓名,(chinese+english+math)总分fromstudent orderby(chinese+english+math)desc;

    selectname姓名,(chinese+english+math)总分fromstudent orderby总分desc;

    对姓李的学生成绩排序输出

    select*fromstudentwherename like '李%' orderby(chinese+english+math)desc;

    统计一个班级共有多少学生?

    selectcount(name)fromstudent;

    selectcount(*)fromstudent;

    统计数学成绩大于90的学生有多少个?

    selectcount(*)fromstudentwheremath>80;

    统计总分大于250的人数有多少?

    selectcount(*)fromstudentwhere(chinese+english+math)>250;

    关于count的函数的细节(count只统有值的行)

    统计一个班级数学总成绩?

    selectsum(math)fromstudent;

    统计一个班级语文、英语、数学各科的总成绩

    selectsum(chinese),sum(english),sum(math)fromstudent;

    统计一个班级语文、英语、数学的成绩总和

    selectsum(chinese+english+math)fromstudent;

    统计一个班级语文成绩平均分

    selectsum(chinese)/count(*)fromstudent;

    统计一个班级语文成绩平均分

    selectavg(chinese)fromstudent;

    求一个班级总分平均分

    selectavg(chinese+math+english)fromstudent;

    求班级最高分和最低分

    selectmax(chinese+math+english),min(chinese+math+english)fromstudent;

    对订单表中商品归类后,显示每一类商品的总价

    selectproduct,sum(price)fromordersgroupbyproduct;

    查询购买了几类商品,并且每类总价大于100的商品

    selectproductfromordersgroupbyproduct havingsum(price)>100;

    按某一属性对记录进行排序

    select*fromstudent orderbygradedesc;

    希望能对你有所帮助!

    相关文章

      网友评论

          本文标题: Mysql 使用命令及 sql 语句示例

          本文链接:https://www.haomeiwen.com/subject/vrnquttx.html