8.mysql-基础.md
目录
数据库管理
查看当前软件中的数据库
show databases;
出现结果:
+--------------------+
| Database |
+--------------------+
| information_schema | --这个是mysql的元数据
| mysql | --这个是mysql的配置数据库,包含用户信息,权限等
| performance_schema | --这个是mysql的运行数据,日志
| test | --这个是mysql的测试数据库,初始是空的
+--------------------+
工具
SQLyog_Enterprise.rar
创建数据库
直接创建
create database hi;
``
创建并设置字符集:注意数据库中的utf-8不带有横杠,写为utf8
```mysql
create database ss
default character set utf8;
删除数据
drop database hi;
查看字符集
show careate database ss;
修改数据库
alter database ss default character set gbk;
表管理
进入数据库
use hi;
查看表
show tables;
创建表
create table person(
id int,
name varchar(20),
age int
);
查看表结构
desc person;
出现:
mysql> desc person;
+-------+-------------+------
| Field | Type | Null
+-------+-------------+------
| id | int(11) | YES
| name | varchar(20) | YES
| age | int(11) | YES
+-------+-------------+------
3 rows in set (0.03 sec)
删除表
drop table person;
修改表
添加字段
alter table person add column hight int;
删除字段
alter table person drop column hight;
修改字段名称
修改字段类型
alter table person modify column hight varchar(8);
修改表名称
alter table person change column hight int;
插入数据
插入所有字段数据
USE hi;
-- 1.增加数据
INSERT INTO person VALUES(1, '张三', 25, '什么');
-- 2.查询数据
SELECT * FROM person;
插入指定字段
-- 3.插入指定字段
INSERT INTO person(id) VALUES(2);
修改
删除
查询优化
空比较
-- 和空字符串比较
SELECT * FROM person AS p WHERE p.name <> ''
-- 和NULL比较
SELECT * FROM person AS p WHERE p.name IS NOT NULL
模糊查询
-- %表示任意个字符比配
SELECT * FROM person AS p WHERE p.name LIKE '%三'
-- _表示单个个字符比配
SELECT * FROM person AS p WHERE p.name LIKE '_三'
分页查询
-- limit分页(起始行,查几行)
SELECT * FROM person LIMIT 0,1;
-- 分页:当前页 每一页显示数据量
-- 分页查询:LIMIT (当前页-1)*每页显示条数, 每页显示条数
数据约束
默认值和非空
-- 默认值
CREATE TABLE default_test(
id INT,
NAME VARCHAR(8) DEFAULT 'a'
);
INSERT INTO default_test(id) VALUES(1);
-- 非空
not null
-- 唯一
CREATE TABLE student(
id INT UNIQUE, -- 唯一
NAME VARCHAR(20)
)
主键和自增长
- 通常情况下,每张表都会设置一个主键字段。用于标记表中的每条记录的唯一性。
- 不要选择表的包含业务含义的字段作为主键,建议给每张表独立设计一个非业务含义的 id字段。
CREATE TABLE student(
id INT(4) ZEROFILL PRIMARY KEY AUTO_INCREMENT, -- 自增长,从0开始 ZEROFILL 零填充。也就是原来的自增长是0,1....而现在int是4位的,变为:0001,0002....
NAME VARCHAR(20)
)
这里要注意,如果删除数据时候,自增长的删除与否是可设置的
-- 不能影响自增长约束
DELETE FROM student;
-- 可以影响自增长约束
TRUNCATE TABLE student;
外键
-- 部门表(主表)
CREATE TABLE dept(
id INT PRIMARY KEY,
deptName VARCHAR(20)
)
-- 修改员工表(副表/从表)
CREATE TABLE employee(
id INT PRIMARY KEY,
empName VARCHAR(20),
deptId INT,-- 把部门名称改为部门ID
-- 声明一个外键约束
CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id)
-- 外键名称 外键 参考表(参考字段)
)
注意:
- 被约束的表称为副表,约束别人的表称为主表,外键设置在副表上的!!!
- 主表的参考字段通用为主键!
- 添加数据: 先添加主表,再添加副表
- 修改数据: 先修改副表,再修改主表
- 删除数据: 先删除副表,再删除主表
级联操作
- 级联修改: ON UPDATE CASCADE
- 级联删除: ON DELETE CASCADE
CREATE TABLE employee(
id INT PRIMARY KEY,
empName VARCHAR(20),
deptId INT,-- 把部门名称改为部门ID
-- 声明一个外键约束
CONSTRAINT emlyee_dept_fk FOREIGN KEY(deptId) REFERENCES dept(id) ON UPDATE CASCADE ON DELETE CASCADE-- ON CASCADE UPDATE :级联修改
-- 外键名称 外键 参考表(参考字段)
)
-- 注意: 级联操作必须在外键基础上使用
8.mysql-基础.md的更多相关文章
- MYSQL基础笔记(三)-表操作基础
数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...
- MYSQL基础操作
MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...
- 【夯实Mysql基础】记一次mysql语句的优化过程
1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...
- MySQL基础(非常全)
MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...
- mysql 基础篇5(mysql语法---数据)
6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...
- MySQL 基础语句
MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...
- MySQL:基础—数据分组
MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
- MySQL基础(五)——视图
MySQL基础(五)--视图
随机推荐
- bootstrap样式
图片: <img src="w.jpg" alt="" class="img-rounded"><img src=&quo ...
- Elasticsearch增删改查
面向文档 document数据格式 应用系统的数据结构都是面向对象的,复杂的 对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相当麻烦 ES是面向文档的,文档 ...
- appium运行时每次默认弹出appiumsetting与unlock重装,关闭这两个步骤的方法
找到appium安装目录,可以在 appium 源码里(C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android)注释 ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- Eclipse svn 项目 星号
上图: 明明没有文件修改过就是无脑显示有提交的文件,有强迫症受不了. 而且每次提交你都点开看有没有漏掉啥文件.很麻烦.也很难受 .很容易漏提交 把本地文件跟SVN同步对比一下. 果然有文件. 添加规则 ...
- 5.1_非监督学习之sckit-learn
非监督学习之k-means K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型.算法执行的过程分为4个阶段. 1.首先,随机设K个特征空间内的点作为初始的聚类中心. ...
- ubuntu14.04 配置g++工具,并运行一个简单的c++文件
首先,对Ubuntu 14.04 LTS进行源更新,摘自下述链接: http://chenrongya.blog.163.com/blog/static/8747419620143185103297/ ...
- mysql decode encode 乱码问题
帮网友解决了一个问题,感觉还是挺好的. 问题是这样的: 问个问题:为什么我mysql中加密和解密出来的字段值不一样?AES_ENCRYPT和 AES_DECRYPT 但是解密出来就不对了 有时候 ...
- spark shuffle 机制
spark shuffle 分为两种 1.byPassSortShuffle 发生条件分区数<=200:无排序及聚合操作 主要是直接按照分区号写文件,有多少分区写多少文件 不做任何排序,简单直接 ...
- 阿里巴巴开源项目: canal
参考:https://www.cnblogs.com/duanxz/p/5062833.html docker 部署canal : https://blog.csdn.net/u013705066/ ...