zoukankan      html  css  js  c++  java
  • MySQL入门第一天——概述、数据表与约束操作

    一、概述

      1.安装

      初学MySQL,我们下载msi的安装版:http://dev.mysql.com/downloads/file.php?id=457403

      安装的过程文字简述可以参考之前随笔:http://www.cnblogs.com/jiangbei/p/6696202.html

      图文安装推荐http://www.jb51.net/article/96898.htm

      如何启动:

        开启——net start mysql  (实际上,所有的windows服务都可以通过此指令进行启动:net start 服务名)
        登陆——mysql -u -p进行登陆  (mysql -uroot -proot,直接-p回车将会提示输入密码而不必输入明文密码)
        退出 ——exit或者quit  (exit;)

     关于cmd界面无法启动mysql:
        1. 必须要使用管理员身份运行cmd程序
        2. 如果下载MySQL5.7版本的,在windows服务上Mysql的名字默认是MySQL57,因此在cmd运行 net start/stop mysql 是无效的,必须改成 net start/stop mysql57才行

        3.安装的时候没勾选开启命令行,导致Path路径中没有bin目录,解决办法如下:

         右键点击“我的电脑”-“属性”-“高级”-“环境变量”-“系统 变量”-双击“Path”-将mysql的路径“D:wampbinmysqlmysql5.0.51bbin  (这里假设您的MYSQL目录和我安装的一样,其实你定位到你的 MYSQL安装目录之后再找到bin目录就可以把全路径写上去了)”添加进去-“确定

      MySQL字符集修改:

    show variables like 'character_set%';
    mysql> set character_set_client=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_connection=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_database=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_results=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_server=utf8;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set character_set_system=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_connection=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_database=utf8;
    Query OK, 0 rows affected (0.01 sec)
    mysql> set collation_server=utf8;
    Query OK, 0 rows affected (0.01 sec)
    View Code

      登陆成功如下:

      

      //mysql命令提示符的修改暂不展开

      2.常用命令

        常用系统表(查询表结构信息等):https://www.aliyun.com/jiaocheng/1398395.html

      实例:

      

      //记得打分号

      语句规范:

      3.操作数据库

        1.创建数据库:(大括号必选,中括号可选)

        实例:

      

      //请尽量遵守语句规范

        2.查看数据库列表:

        实例:

      

        3.修改数据库:

        实例:

      

         4.删除数据库

    二、数据类型与数据表

      1.数据类型

      数字类型:

      

      时间类型

      

      字符类型

      

      2.操作数据表

        1.创建表

      

      只复制表结构:

    两种方法复制表结构:
    1.create table B as select * from A where 1=2; 
    或者: 
    2.create table B like A;

        实例:

      

      2.查看表

      

        实例:

      

       删除表:

        DROP TABLE [IF EXISTS] tb_name;

        

      3.查看表结构

      

        实例:

      

      4.记录插入

      

        实例:(省略字段时所有字段都要赋值)

      

      5.记录查找

      

         实例:(后续会有详细的查找补充)

      

       6.空值与非空

      

         实例:

      

       7.自动编号

      

         实例将与主键约束一同展示

      8.主键约束

        主键:唯一、非空、被引用

      

         实例:

      

      

       【推荐】可以统一在字段创建完成后创建主键约束(其他同理)

    CREATE TABLE t1(
       id int not null,
       name char(20),
       primary key (id)
    );

       9.唯一约束

        只唯一、不非空

      

        实例:

      

      10.默认约束

      

        实例:(性别为枚举类型)

      

      

     三、约束与数据表操作

      1.约束

        更多CHECK级别约束参照W3schoolhttp://www.w3school.com.cn/sql/sql_check.asp

      

     //两个以上字段称为表级约束

       1.外键约束

      

        外键要求:

       

        修改配置文件实现存储引擎的修改:

      

        实例:(调了一下白底黑字和字体为宋体。)

      

      创建外键:可以看到即使类型一致,有无符号位也会造成外键的创建失败

      

      

      自动创建约束验证:

      

      2.外键约束参照操作

      

        实例:(其中 SHOW CREATE TABLE user就相当于可视化工具中的DDL)

      

      //这里外键约束表示在父表中删除行时同时删除子表相应的行

       实例:(先插父表,后插子表)

      

        插入子表:这里有一条不符合条件的插入,这里主键也自动递增了

      

         删除父表中的记录,发现子表中外键关联的相关记录:

      

      当然,物理外键约束性是非常大的,这里我们常常使用的是逻辑外键,这样更加灵活

       所谓的逻辑外键指的是就是我们在定义两张表的结构的时候,我们是按照存在的某种结构的方式去定义,但是不去使用FOREIGN KEY这个关键词来定义。

      3.表级约束与列级约束

      

      2.修改数据表

      1.添加删除列

      

        实例:不指定位置则默认最后

      

      当然,添加多列也是可以的:

      

      2.删除列

      

        实例:

      

      3.添加约束

      

        实例:

       

       其中CONTRAINT关键字是可选的,可以用来自定义约束名

       

      

        实例:

      

      

       完整外键相关约束,参见https://www.cnblogs.com/love_study/archive/2010/12/02/1894593.html

       实例:

      

       约束/检验的DDL示例:

      

       4.添加删除默认约束

      

         实例:

      

      5.删除约束

      

        实例:(主键已经不是Id)

      

        

      实例:(先查看约束,G为以网格形式呈现),要删除约束需要知道约束的名字

      

       

      

        实例:查看DDL可以看到有一个系统默认赋予我们的外键的名字:

      

        实例:

      

      6.修改列定义

      列名字未出错,但列定义:包括列类型与位置等的修改

      

         实例:

      

      7.修改列名称

      CHANGE不仅可以修改列名称,还可以修改列定义

      

        实例:(TINYINT这里稍微注意下读音 ['taɪnɪ])

      

      8.修改表名称

      

        实例:

      

      

      实际中请尽量减少列名称与表名称的修改!

  • 相关阅读:
    TP6|TP5.1 PHPoffice导出|导入
    centOS 7 环境搭建之安装 Redis
    centOS 7 环境搭建之安装 MySQL
    双向循环链表(DoubleLoopLinkList)
    双向链表(DoubleLinkList)
    可执行程序的编译过程
    C语言文件操作
    C语言跨平台时间操作计算时间差
    C语言线程安全问题
    C++类型双关
  • 原文地址:https://www.cnblogs.com/jiangbei/p/7381302.html
Copyright © 2011-2022 走看看