zoukankan      html  css  js  c++  java
  • MySql基础教程(一)

    给定一个场景,学生选课系统为例。

    主要关系:

    学生(学号,姓名,年龄,性别,电话)

    课程(课程ID,课程名称)

    成绩(学生ID,课程ID,成绩)

    1、创建数据库

        使用 create database 语句可完成对数据库的创建, 创建命令的格式如下:

       create database 数据库名 [其他选项];

        eg:

       create database stu_cou character set gbk;

        为了便于在命令提示符下显示中文, 在创建时通过 character set gbk 将数据库字符编码指定为 gbk。

        注意: MySQL语句以分号(;)作为语句的结束;可以使用 show databases; 命令查看已经创建了哪些数据库。

    2、使用数据库

        要对一个数据库进行操作, 必须先选择该数据库, 否则会提示错误:

        ERROR 1046(3D000): No database selected

        在登录后使用 use 语句指定:

         use 数据库名;

        use 语句可以不加分号, 执行 use samp_db 来选择刚刚创建的数据库, 选择成功后会提示: Database changed

    3、创建数据库表

        使用 create table 语句可完成对表的创建, 创建命令的格式如下:

       create table 表名称(列声明);

        以创建本例三张表为例,:

    IF EXISTS(SELECT id FROM sysobjects WHERE name='Student') 
       DROP Table Student
    
    Create table Student
    (
        SID varchar(20) primary key not null,
        SName varchar(20),
        SAge int,
        SSex char(2),
    STel char(13) null default "-"
    );
    IF EXISTS(SELECT id FROM sysobjects WHERE name='Course') 
    BEGIN 
       DROP Table Course
    END
    Create table Course
    (
        CID varchar(20) primary key not null,
        CName varchar(50) not null
    )
    IF EXISTS(SELECT id FROM sysobjects WHERE name='SC') 
    DROP TABLE SC
    
    Create table SC
    (
        SID varchar(20) not null,
        CID varchar(20) not null,
        SScore int
    )
    alter table SC add constraint PK_SC primary key(SID,CID)

    对于一些较长的语句在命令提示符下可能容易输错, 因此我们可以通过任何文本编辑器将语句输入好后保存为 createtable.sql 的文件中, 通过命令提示符下的文件重定向执行执行该脚本。

    打开命令提示符, 输入: mysql -D Student -u root -p < createtable.sql

    (提示: 1.如果连接远程主机请加上 -h 指令; 2. createtable.sql 文件若不在当前工作目录下需指定文件的完整路径。)

    4、操作数据库

    (1)插入:insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);

         其中 [] 内的内容是可选的

         eg:

         要给 stu_cou 数据库中的 Student 表插入一条记录, 执行语句:

       insert into Student values(NULL,"张三","男",20);

         有时我们只需要插入部分数据, 或者不按照列的顺序进行插入, 可以使用这样的形式进行插入:

         insert into Student (SID, SName, SAge) values("李四", "女", 21);

    (2)查询select 列名称 from 表名称 [查询条件];

        eg:

        查询 Student 表中所有学生的名字和年龄, 输入语句 select SName, SAge from Student; 

        where 关键词用于指定查询条件, 用法形式为: select 列名称 from 表名称 where 条件;

        查询所有性别为女的信息: select * from Student where SSex="女";

        查询id小于5且年龄大于20的所有人信息: select * from Student whereSID<5 and SAge>20;

        可以使用通配符 * 查询表中所有的内容, 语句: select * from Student;

    (3)更新:update 表名称 set 列名称=新值 更新条件;

        eg:

        将所有人的年龄增加1: update Student set SAge=SAge+1;

        将SID为2的姓名改为 "王五", 年龄改为 19: update Student set SName="王五", SAge=19 where SID=2;

    (4)删除:delete from 表名称 删除条件;

        eg:

        删除SID为2的行: delete from Student where SID=2;

        删除所有年龄小于21岁的数据: delete from Student where SAge<20;

        删除表中的所有数据: delete from Student;

    5、表的修改

         alter table 语句, 基础用法如下:

        添加列

        基本形式: alter table 表名 add 列名 列数据类型 [after 插入位置];

        eg:

        在表的最后追加列 SAddress: alter table Student add SAddress char(60);

        在名为 SQAge 的列后插入列 SBirthday: alter table Student add SBirthday date after SAge;

        修改列

        基本形式: alter table 表名 change 列名称 列新名称 新数据类型;

        eg:

        将表 STel 列改名为 STelphone: alter table students change STel STelphone char(13) default "-";

        将 SName 列的数据类型改为 char(16): alter table Student change SName SName char(16) not null;

        删除列

        基本形式: alter table 表名 drop 列名称;

        eg:

        删除 SBirthday 列: alter table Student drop SBirthday;

        重命名表

        基本形式: alter table 表名 rename 新表名;

        eg:

        重命名 Student 表为 stu: alter table Student rename stu;

        删除整张表

        基本形式: drop table 表名;

        eg: 

        删除stu 表: drop table stu;

        删除整个数据库

        基本形式: drop database 数据库名;

        示例: 删除 stu_cou 数据库: drop database stu_cou;

     6、预设数据内容

  • 相关阅读:
    模块二 GO语言进阶技术-panic函数、recover函数以及defer语句(上)
    模块二 GO语言进阶技术-错误处理(下)
    模块二 GO语言进阶技术-错误处理(上)
    模块二 GO语言进阶技术-if语句、for语句和switch语句
    模块二 GO语言进阶技术-GO语句及其执行规则(下)
    模块二 GO语言进阶技术-go语句及其执行规则(上)
    模块二 GO语言进阶技术-关于指针的有限操作
    模块二 GO语言进阶技术-接口类型的合理运用
    模块二 GO语言进阶技术-结构体及其方法的使用法门
    模块二 GO语言进阶技术-使用函数的正确姿势
  • 原文地址:https://www.cnblogs.com/zhouerba/p/7381724.html
Copyright © 2011-2022 走看看