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、预设数据内容

原文地址:https://www.cnblogs.com/zhouerba/p/7381724.html