zoukankan      html  css  js  c++  java
  • MySQL入门学习(1):

    服务开启与关闭:

    开启MySQL服务:NET SATRT [MySQL服务名]

    关闭MySQL服务:NET START 【MySQL服务名]

    例如:NET START MYSQL56_1

              NET STOP MYSQL56_1

    查询已开启的服务;NET START

    创建表:

    例如:

    (1) 建立教学管理中的三个基本表:

    Students(S#,SNAME,AGE,SEX) 学生(学号,姓名,年龄,性别)

    Courses(C#,CNAME,SCORE,PC#) 课程(课程号,课程名,学分,先行课号)

    SC(S#,C#,GRADE) 选修(学号,课程号,成绩)

    mysql> Create table Students(
        -> SN CHAR(5),
        -> SNAME CHAR(20) NOT NULL,
        -> AGE INT,
        -> SEX CHAR(2),
        -> primary key(SN));
    Query OK, 0 rows affected (0.03 sec)

    mysql> Create table Courses(
        -> CN CHAR(5),
        -> CNAME CHAR(20) NOT NULL,
        -> Score float,
        -> PCN CHAR(2),
        -> primary key(CN));
    Query OK, 0 rows affected (0.07 sec)

    mysql> Create table SC(
        -> SN CHAR(5),
        -> CN CHAR(5),
        -> GRADE FLOAT,
        -> PRIMARY KEY(SN,CN));
    Query OK, 0 rows affected (0.08 sec)

    添加数据:

    (1) 用INSERT 命令输入数据。

    表6 基本表Students的数据:

    image

    表7基本表Courses的数据

    image

    表8 基本表SC的数据(空格为未选修):

    image

    mysql> insert into students values('S1','LU',20,'M');
    Query OK, 1 row affected (0.04 sec)

    mysql> insert into students values('S2','YIN',19,'M');
    Query OK, 1 row affected (0.06 sec)

    mysql> insert into students values('S3','XU',18,'F');
    Query OK, 1 row affected (0.05 sec)

    mysql> insert into students values('S4','QU',18,'F');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into students values('S6','PAN',14,'M');
    Query OK, 1 row affected (0.05 sec)

    mysql> insert into students values('S8','DONG',24,'M');
    Query OK, 1 row affected (0.05 sec)

    mysql> INSERT INTO COURSES VALUES('C1','数学',4,'M');
    Query OK, 1 row affected (0.07 sec)

    mysql> INSERT INTO COURSES VALUES('C2','英语',8,'M');
    Query OK, 1 row affected (0.06 sec)

    mysql> INSERT INTO COURSES VALUES('C3','数据结构',4,'F');
    Query OK, 1 row affected (0.06 sec)

    mysql> INSERT INTO COURSES VALUES('C4','数据库',3.5,'F');
    Query OK, 1 row affected (0.07 sec)

    mysql> INSERT INTO COURSES VALUES('C5','网络',4,'M');
    Query OK, 1 row affected (0.06 sec)

    mysql> insert into sc values('S1','C1',85);
    Query OK, 1 row affected (0.00 sec)

    mysql> INSERT INTO SC VALUES('S1','C2',73);
    Query OK, 1 row affected (0.01 sec)

    mysql> insert into sc values('S1','C4',89);
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into sc values('S1','C5',73);
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into sc values('S2','C1',90);
    Query OK, 1 row affected (0.01 sec)

    mysql> insert into sc values('S2','C3',80);
    Query OK, 1 row affected (0.01 sec)

    mysql> insert into sc values('S2','C4',85);
    Query OK, 1 row affected (0.15 sec)

    mysql> insert into sc values('S3','C1',89);
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into sc values('S3','C2',86);
    Query OK, 1 row affected (0.10 sec)

    mysql> insert into sc values('S4','C1',84);
    Query OK, 1 row affected (0.10 sec)

    mysql> insert into sc values('S4','C2',82);
    Query OK, 1 row affected (0.00 sec)

    ………………………..

    数据查询

    ( 1 )  列出选修课程号为C2的学生学号与姓名。

    (2) 检索选修课程名为“数学”的学生学号与姓名。

    (3) 检索没有选修C2课程的学生姓名与年龄。

    (4) 检索选修全部课程的学生姓名。

    mysql> selECT STUDENTS.SN,STUDENTS.SNAME FROM STUDENTS,SC
        -> WHERE (STUDENTS.SN=SC.SN) AND (SC.CN='C2');
    +----+-------+
    | SN | SNAME |
    +----+-------+
    | S1 | LU    |
    | S3 | XU    |
    | S4 | QU    |
    | S6 | PAN   |
    | S8 | DONG  |
    +----+-------+
    5 rows in set (0.09 sec)

    mysql> selECT STUDENTS.SN,STUDENTS.SNAME FROM STUDENTS,COURSES,SC
        -> WHERE (STUDENTS.SN=SC.SN) AND (SC.CN=COURSES.CN) AND (COURSES.CNAME='网络');
    +----+-------+
    | SN | SNAME |
    +----+-------+
    | S1 | LU    |
    | S8 | DONG  |
    +----+-------+
    2 rows in set (0.00 sec)

    mysql> select students.SNAME,students.age
        -> from students,sc
        ->  where students.sn=sc.sn and sc.cn='C2' and sc.grade IS NULL;
    +-------+------+
    | SNAME | age  |
    +-------+------+
    | YIN   |   19 |
    +-------+------+
    1 row in set (0.00 sec)

    mysql> delete
        -> from sc
        -> where Grade is NULL;
    Query OK, 10 rows affected (0.03 sec)

    mysql> select SNAME
        -> from students
        -> where not exists
        -> (Select * from courses
        -> where not exists
        -> (select * from sc
        -> where sc.sn=students.sn and sc.cn=courses.cn));
    +-------+
    | SNAME |
    +-------+
    | LU    |
    +-------+
    1 row in set (0.00 sec)

    数据修改、删除

    (1)           把C2课程的非空成绩提高10%。

    (2)           在SC表中删除课程名为“物理”的成绩所对应的元组。

    (3)           在S和SC表中删除学号为S8的所有数据。

    mysql> update sc
    -> set grade=grade*1.1
    -> where cn='C2';
    Query OK, 5 rows affected (0.07 sec)
    Rows matched: 5 Changed: 5 Warnings: 0

    mysql> select * from sc
    -> where cn='C2';
    +----+----+-------+
    | SN | CN | GRADE |
    +----+----+-------+
    | S1 | C2 | 80.3 |
    | S3 | C2 | 94.6 |
    | S4 | C2 | 90.2 |
    | S6 | C2 | 82.5 |
    | S8 | C2 | 93.5 |
    +----+----+-------+
    5 rows in set (0.00 sec)

    mysql> delete
    -> from sc
    -> where cn=(select cn
    -> from courses
    -> where cname='物理');
    Query OK, 0 rows affected (0.00 sec)

    mysql> delete from sc
    -> where sc.sn='S8';
    Query OK, 4 rows affected (0.05 sec)

    mysql> delete from students where sn='S8';
    Query OK, 1 row affected (0.00 sec)

    视图的操作

    (1)       建立男生学生的视图,属性包括学号,姓名,选修课程名和成绩。

    (2)       在男生视图中查询平均成绩大于80分的学生学号和姓名。

    mysql> create view M
    -> as
    -> select students.sn,sname,cname,grade
    -> from students,courses,sc
    -> where students.sn=sc.sn and courses.cn=sc.cn;
    Query OK, 0 rows affected (0.06 sec)

    mysql> select sn,sname
    -> from M
    -> where AVG(grade)>80
    -> group by sn;
    ERROR 1111 (HY000): Invalid use of group function

    此处WHERE子句不能使用聚集函数作为表达式作为条件表达式,因此执行此查询将会出现语法错误。


    mysql> select sn,sname
    -> from M
    -> group by sn
    -> HAVING AVG(grade)>80;
    +----+-------+
    | sn | sname |
    +----+-------+
    | S1 | LU |
    | S2 | YIN |
    | S3 | XU |
    | S4 | QU |
    | S6 | PAN |
    +----+-------+
    5 rows in set (0.00 sec)

  • 相关阅读:
    数字签名与HTTPS详解
    利用策略模式优化过多 if else 代码
    Redis 的事务到底是不是原子性的
    Spring Boot项目的接口防刷
    深入分析 ThreadLocal
    什么是四层和七层负载均衡?他们之间的区别是什么?
    MyEclipse或Eclipse中project的导入和导出
    org.hibernate.exception.ConstraintViolationException: could not insert:
    C++ STL vector(向量容器)的使用(附完整程序代码)
    Swift2.0语言教程之函数嵌套调用形式
  • 原文地址:https://www.cnblogs.com/bacazy/p/3468424.html
Copyright © 2011-2022 走看看