一、概述

  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)

  登陆成功如下:

  

  //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级别约束参照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. Windows 10 X64 ISO 专业版&家庭版下载与永久激活

    好久没有更新博客,算算时间,已经有4年了,好吧,今天突发奇想,想把今天安装Windows 10的过程给记录下来. 2015年的时候,微软就发布了Windows 10,当时正版的Win7.Win8都可以 ...

  2. June 29th 2017 Week 26th Thursday

    Hope for the best, but prepare for the worst. 做最好的期望,做最坏的打算. Always remember that quotes about being ...

  3. 使用简单的Java代码在SAP C4C里创建销售订单

    需要创建的销售订单的明细通过硬编码指定: 比如销售订单的描述为Jerry Test 2019-1-23 16:05PM 执行之后,看到Status Code 201,说明创建成功: 到UI上能看到成功 ...

  4. 150行JavaScript代码实现增强现实

    增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这 ...

  5. Python之Dict和Set类型(入门5)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407905.html 本文出自:[Edwin博客园] Python之Dict和Set类型 1. Python ...

  6. 随机以及时间相关函数——C语言描述

    随机相关的函数 头文件 stdlib.h 相关函数 :rand .srand rand( rand C++ Reference ) 函数声明:int rand( void ); rand函数返回一个位 ...

  7. 连接IBM MQ原因码报2035的错误解决办法

    我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建 ...

  8. UVA151 Power Crisis

    嘟嘟嘟 这道题被评为紫题完全是在假(虽然我也跟风评了紫题),顶多黄题难度. 评黄题的主要原因是得知道约瑟夫递推公式,即fn = (fn - 1 +m) % n.表示n个人报数最后的获胜者,需要注意的是 ...

  9. 用@ExceptionHandler 来进行异常处理

    有时候我们想统一处理一个Controller中抛出的异常怎么搞呢? 直接在Controller里面加上用@ExceptionHandler标注一个处理异常的方法像下面这样子 @ExceptionHan ...

  10. Vue 父子组件传值 props

    1.Vue 的渲染周期: vue 如何实现响应式追踪. 父子组件通信有很多方式,今天单独聊下props 的方式.我们通过查找官方文档很容发现,props传值有静态和动态两种传值方式. 当然props ...