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)
登陆成功如下:
//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入门第一天——概述、数据表与约束操作的更多相关文章
- MySQL(9):数据表的约束(列的属性)
1.首先我们看一下这个图: 1.NULL| not NULL是否为空 规定一个字段的值是否为NULL 2.Default value 字段默认值属性 常见的是一个字段不能为空,而且存在默认值 ...
- MySQL入门(4)——操作数据表
MySQL入门(4)--操作数据表 创建数据库 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据库名 [(create_definition,...)] [tab ...
- MySQL学习笔记_4_MySQL创建数据表(下)
MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...
- mysql存储过程之游标遍历数据表
原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕 ...
- mysql(三) 数据表的基本操作操作
mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...
- C# 利用mysql.data 在mysql中创建数据库及数据表
C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
- MySQL 给已存在的数据表 增加字段和注释
MySQL 给已存在的数据表 增加字段和注释 问题描述 在开发一个系统的过程中,经常会遇到随着系统服务功能的扩展,或者服务之间的关联,需要适当的修改原有的表结构,比如,增加一些必要的字段. 示例:在已 ...
- MySQL(九)之数据表的查询详解(SELECT语法)一
这一篇是MySQL中的重点也是相对于MySQL中比较难得地方,个人觉得要好好的去归类,并多去练一下题目.MySQL的查询也是在笔试中必有的题目.希望我的这篇博客能帮助到大家! 重感冒下的我,很难受!k ...
随机推荐
- Windows 10 X64 ISO 专业版&家庭版下载与永久激活
好久没有更新博客,算算时间,已经有4年了,好吧,今天突发奇想,想把今天安装Windows 10的过程给记录下来. 2015年的时候,微软就发布了Windows 10,当时正版的Win7.Win8都可以 ...
- June 29th 2017 Week 26th Thursday
Hope for the best, but prepare for the worst. 做最好的期望,做最坏的打算. Always remember that quotes about being ...
- 使用简单的Java代码在SAP C4C里创建销售订单
需要创建的销售订单的明细通过硬编码指定: 比如销售订单的描述为Jerry Test 2019-1-23 16:05PM 执行之后,看到Status Code 201,说明创建成功: 到UI上能看到成功 ...
- 150行JavaScript代码实现增强现实
增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这 ...
- Python之Dict和Set类型(入门5)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407905.html 本文出自:[Edwin博客园] Python之Dict和Set类型 1. Python ...
- 随机以及时间相关函数——C语言描述
随机相关的函数 头文件 stdlib.h 相关函数 :rand .srand rand( rand C++ Reference ) 函数声明:int rand( void ); rand函数返回一个位 ...
- 连接IBM MQ原因码报2035的错误解决办法
我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建 ...
- UVA151 Power Crisis
嘟嘟嘟 这道题被评为紫题完全是在假(虽然我也跟风评了紫题),顶多黄题难度. 评黄题的主要原因是得知道约瑟夫递推公式,即fn = (fn - 1 +m) % n.表示n个人报数最后的获胜者,需要注意的是 ...
- 用@ExceptionHandler 来进行异常处理
有时候我们想统一处理一个Controller中抛出的异常怎么搞呢? 直接在Controller里面加上用@ExceptionHandler标注一个处理异常的方法像下面这样子 @ExceptionHan ...
- Vue 父子组件传值 props
1.Vue 的渲染周期: vue 如何实现响应式追踪. 父子组件通信有很多方式,今天单独聊下props 的方式.我们通过查找官方文档很容发现,props传值有静态和动态两种传值方式. 当然props ...