目录

数据库管理

查看当前软件中的数据库

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的更多相关文章

  1. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  2. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  3. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  4. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  5. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  6. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  7. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  8. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  9. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  10. MySQL基础(五)——视图

    MySQL基础(五)--视图

随机推荐

  1. spark streaming检查点使用

    import org.apache.spark._ import org.apache.spark.streaming._ /** * Created by code-pc on 16/3/14. * ...

  2. 第5章 IP地址和子网划分(2)_IP地址分类和NAT技术

    3. IP地址的分类 (1)五类IP地址 (2)数轴表示法 4. 保留地址 (1)网段的地址:主机ID全0.如192.168.100.0/24,其中的192.168.10.0指的是网段. (2)广播地 ...

  3. 使用Excel随机函数产生大众评委的6位登录密码

    第一步:填写公式 如下图所示:选中B2单元格输入公式   =TEXT(ROUNDUP(RAND()*1000000,0),"000000") ,然后回车. 可复制的纯文本格式: = ...

  4. Opening socket connection to server :2181. Will not attempt to authenticate using SASL (unknown error) hbase

    问题: 在HBase机群搭建完成后,通过jdbc连接hbase,在连接zookeeper阶段出现Opening socket connection to server  :2181. Will not ...

  5. tp5 计算两个日期之间相差的天数

    //两个日期之间相差的天数 function diffBetweenTwoDays ($day1, $day2) { $second1 = strtotime($day1); $second2 = s ...

  6. 在html中使用thymeleaf编写通用模块

    在编写页面时,常常会需要用到通用模块,比如header部分.footer部分等. 项目前端使用的是themeleaf模板引擎,下面简单介绍下使用themeleaf写header通用模块: 1. 通用部 ...

  7. collections之python基本应用

    Collections主要功能 Counter 类 defaultdict 类 namedtuple 类 deque类 orderedDict类 Counter 是一个有助于 hashable 对象计 ...

  8. 安全测试1_Web知识简介

    接下去所有的安全测试都是本人学习安全测试的过程,随笔中会截取云课堂视频中的图片(比较生动和形象,便于理解),主要目的是方便自己以后复习和巩固! 1.Web发展阶段概述: 2.web安全我能提发展形势: ...

  9. 从入门到熟悉 HTTPS 的 9 个问题

    九个问题从入门到熟悉HTTPS 最近一边做毕设一边学习编程.前两天她问我 HTTPS 的问题,本来想直接扔一篇网上的教程给她.后来想了一下,那些文章大多直接介绍概念, 对新手不太友好,于是我干脆亲自给 ...

  10. [UGUI]图文混排(七):动态表情

    帧动画脚本: http://www.cnblogs.com/lyh916/p/9194823.html 这里的动态表情,我使用的是固定间隔去刷新Image上的Sprite来实现的,即帧动画.这里可以将 ...