一、概述

  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字符集修改:

  1. show variables like 'character_set%';
  2. mysql> set character_set_client=utf8;
  3. Query OK, 0 rows affected (0.00 sec)
  4. mysql> set character_set_connection=utf8;
  5. Query OK, 0 rows affected (0.00 sec)
  6. mysql> set character_set_database=utf8;
  7. Query OK, 0 rows affected (0.00 sec)
  8. mysql> set character_set_results=utf8;
  9. Query OK, 0 rows affected (0.00 sec)
  10. mysql> set character_set_server=utf8;
  11. Query OK, 0 rows affected (0.00 sec)
  12. mysql> set character_set_system=utf8;
  13. Query OK, 0 rows affected (0.01 sec)
  14. mysql> set collation_connection=utf8;
  15. Query OK, 0 rows affected (0.01 sec)
  16. mysql> set collation_database=utf8;
  17. Query OK, 0 rows affected (0.01 sec)
  18. mysql> set collation_server=utf8;
  19. Query OK, 0 rows affected (0.01 sec)

  登陆成功如下:

  

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

  2.常用命令

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

  实例:

  

  //记得打分号

  语句规范:

  3.操作数据库

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

    实例:

  

  //请尽量遵守语句规范

    2.查看数据库列表:

    实例:

  

    3.修改数据库:

    实例:

  

    4.删除数据库

二、数据类型与数据表

  1.数据类型

  数字类型:

  

  时间类型

  

  字符类型

  

  2.操作数据表

    1.创建表

  

  只复制表结构:

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

    实例:

  

  2.查看表

  

    实例:

  

  删除表:

    DROP TABLE [IF EXISTS] tb_name;

    

  3.查看表结构

  

    实例:

  

  4.记录插入

  

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

  

  5.记录查找

  

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

  

  6.空值与非空

  

    实例:

  

  7.自动编号

  

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

  8.主键约束

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

  

    实例:

  

  

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

  1. CREATE TABLE t1(
  2. id int not null,
  3. name char(20),
  4. primary key (id)
  5. );

   9.唯一约束

    只唯一、不非空

  

    实例:

  

  10.默认约束

  

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

  

  

 三、约束与数据表操作

  1.约束

    更多CHECK级别约束参照W3school:http://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.修改表名称

  

    实例:

  

  

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

MySQL入门第一天——概述、数据表与约束操作的更多相关文章

  1. MySQL(9):数据表的约束(列的属性)

    1.首先我们看一下这个图: 1.NULL| not NULL是否为空      规定一个字段的值是否为NULL 2.Default value 字段默认值属性 常见的是一个字段不能为空,而且存在默认值 ...

  2. MySQL入门(4)——操作数据表

    MySQL入门(4)--操作数据表 创建数据库 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据库名 [(create_definition,...)] [tab ...

  3. MySQL学习笔记_4_MySQL创建数据表(下)

    MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...

  4. mysql存储过程之游标遍历数据表

    原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕 ...

  5. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  6. C# 利用mysql.data 在mysql中创建数据库及数据表

    C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...

  7. mysql 导入导出数据库、数据表的方法

    mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...

  8. MySQL 给已存在的数据表 增加字段和注释

    MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段. 示例:在已 ...

  9. MySQL(九)之数据表的查询详解(SELECT语法)一

    这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目.MySQL的查询也是在笔试中必有的题目.希望我的这篇博客能帮助到大家! 重感冒下的我,很难受!k ...

随机推荐

  1. July 16th 2017 Week 29th Sunday

    Opportunities are like sunrises, if you wait too long, you miss them. 机会如同日出,等得太久就会错过. Indecision is ...

  2. mongodb---js脚本操作速记

    之前写一些mongodb的同步或操作程序,往往使用perl,甚至c实现,这样程序很繁琐,而且逻辑不好控制,甚至一些功能和命令什么的,在这些语言的mongo驱动中就没有实现.后来发现mongodb 的s ...

  3. C#图解教程读书笔记(第9章 语句)

    文件头的Using是Using指令,不是using语句 using (TextWriter tw = File.CreateText("xixi.txt")) { tw.Write ...

  4. (二)给Centos配置网络以及使用xshell远程连接Centos

    好吧,我对网络协议以及ip配置知识的匮乏,让我在这里折腾了将近一天才搞定.可以说基本上网上遇到的问题我都遇到了.在这里,记下正确的步骤来给Centos配置网络.希望以后少走弯路. 首先我要说明的是,我 ...

  5. git的一些小命令

    git_cmd git常用命令 <>代表变量,例如 代表分支名称 远程库 查看远程库信息 git remote -v 查看远程仓库:$ git remote -v 添加远程仓库:$ git ...

  6. 理解HTML DOM

    DOM(Document Object Model)全称文档对象模型.DOM其实是JavaScript操作网页的一套API接口,定义了访问和操作HTML文档的标准.定义了所有HTML元素的对象和属性, ...

  7. matlab中boxplot字体大小设置

    网上找到的:set(findobj(gca,'Type','text'),'FontSize',18) boxplot() uses the default axes labeling for the ...

  8. VS2008 工具栏CMFCToolBar的使用总结(转)

    (一)自定义工具栏 自定义工具栏,分两种情况:一是直接添加工具栏,并自己绘制图标:二是,添加工具栏,然后与BMP关联,与VC6.0中的自定义彩色工具栏类似. 1.  自绘工具栏 1)添加Toolbar ...

  9. @RestController失效

    @RestController 注解失效.就是本来应该是直接返回数据.而不是去查找视图.但是去查找视图了.我这人不喜欢弄一些无用的配置文件.所以用到什么.引用什么.但是也容易犯错误.不过也好.对哪里出 ...

  10. 给requests模块添加请求头列表和代理ip列表

    Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,符合了Python语言的思想,通俗的说去繁存 ...