zoukankan      html  css  js  c++  java
  • MySQL SQL

    SQL语句错误:

    Column count doesn't match value count at row 1

                   列计数与第1行的值计数不匹配

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server

    version for the right syntax to use near 'DATABASE' at line 1

             您的SQL语法中有错误; 请检查与MySQL服务器版本对应的手册,以获取在第1行“DATABASE”附近使用的正确语法

    连接数据库时出现这样的错误:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 

    原因:数据库未启动,要先启动数据库,操作:在有管理员权限的命令行窗口键入 "net start mysql" 命令来启动数据库即可。

     注意:sql语句中的变量都应该用英文单词表示。

    1、 在MySQL下创建一个数据库student,字符集使用utf8

           CREATE DATABASE student character set utf8;//创建表时设置字符集

    2、 创建三个表

    (1) 学生表,字段如下:学号,姓名,性别,出生日期,省份,班级,各字段使用合适的数据类型,设置学号为主键

    create table 学生表(

        学号 INT NOT NULL PRIMARY KEY,   //设置主键

         姓名 VARCHAR(20) NOT NULL ,

         性别 VARCHAR(2) ,

         出生日期 DATE ,

         省份 VARCHAR(20),

     班级 VARCHAR(15)

    );

    (2) 课程表,字段如下:课程号,课程名称,任课教师,学时,学分,课程性质(选修,必修),备注,各字段使用合适的数据类型,设置课程号为主键

    create table 课程表(

         课程号 INT NOT NULL PRIMARY KEY,

         课程名称 VARCHAR(30) NOT NULL ,

         任课老师 VARCHAR(10) ,

         学时 INT  ,

         学分 INT ,

     课程性质 VARCHAR(15)

    );

     

    (3) 成绩表:字段如下:学号,课程号,成绩,设置学号,课程号为外部主键

    create table 成绩表(

         学号 INT NOT NULL  ,

         课程号 INT  NOT NULL  ,

         成绩 INT ,

         foreign key ( 学号 )  references  学生表( 学号 ),     //设置外键

         foreign key (课程号 )  references 课程表(课程号 )   //设置外键

    );

     

    3、 使用SQL语句在三个表中分别增加若干数据

     //插入数据,INT类型数据直接写,VARCHAR字符串类型数据要用单引号,DATE日期类型数据也要用单引号

    insert into 学生表 ( 学号, 姓名, 性别, 出生日期, 省份, 班级) values (1404240520 ,'小浩', '男' , '2008-08-15' ,'湖北省','11405班');

     

    4、 使用相应的SQL语句实现以下操作

    (1) 查询所有学生的学号,姓名,出生日期信息

               select 学号,姓名,出生日期  from 学生表;    //查询语句select与from之间可以有多个字段,用逗号隔开,代表要输出的字段

     

    (3) 查询省份是“湖北”,姓“李”的女同学的学号,班级,出生日期

     

             select 学号, 班级, 出生日期 from 学生表 where 省份='湖北省' and 姓名 like '李%' and 性别='女';

    (4) 统计男,女同学的人数

             select 性别,count(*) from 学生表 where 性别='女' group by 性别;   //count(*)表中本来是没有的,新创建的字段来记录个数

     

             select 性别,count(*) from 学生表 where 性别='男' group by 性别;

     

    (6) 删除性别为null或’’的学生
           delete  from student where sex=null or sex=' ';


    (7) 将1990年出生的学生省份修改为“湖北”,年龄增加1岁
            update student set birthdate=adddate(birthdate,INTERVAL 1 YEAR),province='湖北' where year(birthdate)=1990;//使用SQL语句方法

         //或者 这样

            update  student  set provice=’湖北省’ , birthdate =birthdate+1 where year(birthdate)=1990;

    (8) 分页显示年龄大于20岁的同学所有信息(每页显示10条,本题要求显示第二页)
            select * from student where YEAR(birthdate)<YEAR( current_date())-20  limit 10,10; //limit语句 limit 开始行,每页取出的数据个数

    (9)查询所有同学的所有成绩信息,显示“学号,姓名,课程名称,成绩”
             select  score.studentid, student.name,course.coursename,score.score  from score  left join  student on score.studentid=student.studentid left join course on score.courseid=course.courseid;
    //sql语句多表联合查询,left join左连接

    (10) 查询所有男同学的成绩信息,显示“学号,姓名,课程名称,成绩”
            select score.studentid, student.name,course.coursename,score.score from score left join student on score.studentid=student.studentid left join course on score.courseid=course.courseid  where student.sex='男';

    (11) 查询所有必修课程的平均分,显示“课程号,课程名称,课程性质,平均分”
           select course.courseid, course.coursename, course.type, AVG(score.score) from course ,score where course.courseid=score.courseid  and  course.type='必修' GROUP BY course.courseid;


    (12) 查询某个班级所有课程的平均分,显示“班级,课程,平均分”(按平均分倒序显示),并将查询结果增加到一个新的表中
                 create table classscore  as  select student.class,course.coursename,AVG(score.score) as avg from  student,course,score where student.class='计科1'and student.studentid=score.studentid and course.courseid=score.courseid group by course.coursename order by AVG(score.score) desc;  //创建新表并将查询到的数据作为新表的数据

    查询命令语句http://bbs.csdn.net/topics/390407669

    外键 http://blog.sina.com.cn/s/blog_53729e4601011wja.html

  • 相关阅读:
    python lambda
    Java使用Graphics2D生成公章
    纯前端Html+JavaScript+canvas生成公章
    MySQL 大表优化方案,收藏了细看!
    【全干货】5分钟带你看懂 Docker!
    MySQL 分页优化中的 “ INNER JOIN方式优化分页算法 ” 到底在什么情况下会生效?...
    React-Native iOS真机调试(新版)
    React-Native iOS真机调试(新版)
    React-Native iOS真机调试(新版)
    React-Native iOS真机调试(新版)
  • 原文地址:https://www.cnblogs.com/feng-ye/p/5997544.html
Copyright © 2011-2022 走看看