zoukankan      html  css  js  c++  java
  • MySQL数据库详解

    1.数据库的定义

    数据库是存储数据的工具,并允许以某种方式创建,阅读,更新,和删除数据。

    关系数据库:包含行和列的表。每一行均保存了有关特定实体的相关数据。每一列表示有关实体的一条信息。

    常用关系型数据库

    Oracle:跨平台,多层次网络计算,支持多重工业标准,处理海量数据,性能优

    DB2: IBM公司

    Microsoft sqlServer:只能运行在windows平台,C/S结构可以使用ADO,OLEDB,ODBC连接,由于其易操作性及其友好的操作界面,深受广大用户的喜爱

    MySql:mySql是开源的,是一个快速的、可靠的和易于使用的数据库服务器,MySQL服务器工作在客户/服务器或嵌入系统中

    LAMP:Linux+Apache+MySql+PHP

    一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台

     选择标准

    首要的原则就是根据实际需要,另 一方面还要考虑游戏开发预算。现在常用的数据库有:SQL Server、My SQL、Oracle。其中MySQL是一个完全免费的数据库系统,其功能也具备了标准数据库的功能,因此,在独立制作时,建议使用。 Oracle虽然功能强劲,但它毕竟是为商业用途而存在的,目前很少在游戏中使用到。

    2.数据库应遵守的范式:(规范)

    第一范式

       1.每列必须有唯一的名称

       2.行和列的次序无关紧要

       3:每一列有单独的数据类型

       4:不允许包含相同值的行

      5:每一列包含一个单值

      6:列不能包含重复的组

    第二范式

       1:符合第一范式

       2:所有的非键值字段依赖于所有的键值字段

     

    不符合第二范式的例子: 表:学号, 姓名, 年龄, 课程名称, 成绩, 学分; 这个表明显说明了两个事务:学生信息, 课程信息; 存在问题: 数据冗余,每条记录都含有相同信息; 删除异常:删除所有学生成绩,就把课程信息全删除了; 插入异常:学生未选课,无法记录进数据库; 更新异常:调整课程学分,所有行都调整。 

     

    修正: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分); 选课关系:SelectCourse(学号, 课程名称, 成绩)。 

     

    第三范式

       符合2NF

       他不能包含传递相关性(指一个非键值字段的值依赖于另一个非键值的字段)

    不符合第三范式的例子: 学号, 姓名, 年龄, 所在学院, 学院联系电话,关键字为单一关键字"学号"; 存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话) 存在问题: 数据冗余:有重复值; 更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 删除异常 修正: 学生:(学号, 姓名, 年龄, 所在学院); 学院:(学院, 地点, 电话)。

    3.常用的SQL语句

     

    1,创建表

    CREATE 创建

    TABLE 表

    PRIMARY KEY主键 (标志符 身份证)打完人名后自动生成

    AUTOINCREMENT自动增长

     

    NOT NULL 非空

    UNIQUE 唯一的

    一般不写

     

     

    CREATE TABLE Teacher1 (teacher_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, teacher_name TEXT,teacher_sex BOOLEAN)

    [说明 表里有多少列 每列有多少行 3列 ]

     

    CREATE TABLE Teacher2 (teacher_id INTEGER PRIMARY KEY AUTOINCREMENT, teacher_name TEXT,teacher_sex BOOLEAN)

     

    2, 删除表

    DROP 丢弃 扔到

     

    DROP TABLE Teacher1

     

    3,给表添加列

    ALTER 改变 修改

     

    ALTER TABLE Teacher2 ADD teacher_age INTEGER

     

    4,插入数据

     

    INSERT INTO Teacher VALUES(1,'zhangsan',1)

    INSERT INTO Students (name,sex)VALUES('zhangsan',0)

     

    5,查询数据

    SELECT 查询

    * 全部

    FROM

     

    SELECT * FROM Students

    SELECT * FROM Students WHERE number<10

    SELECT * FROM Students WHERE number<10 OR sex=1

    SELECT * FROM Students WHERE number<10 AND number>5

     

    like 匹配

    SELECT * FROM Students WHERE name like 'zhang%'

    SELECT * FROM Students WHERE name like 'zhang_'

     

    LIMIT 限制

    从第六条开始 往后的15条

    SELECT * FROM Students LIMIT 5,15

     

    6,修改数据

    UPDATE 更新

    set 设置

     

    UPDATE Students set name='lisi',sex=1 where number < 10 AND number>5

     

    7,删除数据

    DELETE 删除

     

    DELETE FROM Students WHERE number > 25

     

  • 相关阅读:
    第九届蓝桥杯JavaA组省赛真题
    Qt的IDE开发环境(KDevelop,MonKey Studio,QDevlop,Dev-cpp,Cobras,Edyuk)
    Eclipse+Qt开发环境设置(Linux和Win)
    Visual Studio 2005安装qt-win-commercial-src-4.3.1,并设置环境变量
    在VC6.0中编译头文件时产生moc文件
    Qt配置信息设置(QSettings在不同平台下的使用路径)
    应对业务需求变化?
    开发环境准备:Ruby on Rails开发环境配置
    VS2013中Python学习环境搭建
    JQUERY 插件开发——MENU(导航菜单)
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/MySQL_SQL.html
Copyright © 2011-2022 走看看