MySQL是目前最流行的关系型数据库管理系统之一,它是由MySQL AB公司开发、发布并支持。MySQL是一个跨平台的开源关系型数据库管理系统,被广泛地应用在internet上的中小型网站开发中。相比于其他大型数据库管理系统(如Oracle、DB2、SQL Server等),MySQL规模小、功能有限,但它体积小、速度快、成本低。且它提供的功能对稍微复杂的应用来说已经够用了。

MySQL内部有多个数据库,每个数据库里可以有多个表格,每个表格由行和列组成。所以进入数据库进行相应操作流程如下:1、登入mysql用户    2、进入指定数据库   3、对指定表格操作

数据库命令不分大小写,一般都是用大写,本人为了更好理解命令行的意思,均采用小写。进入MySQL后的每次命令都要在后面加上分号。

用户

  • 进入mysql
mysql -u账号 -p密码
  • 退出:\q
  • 创建用户
create user '账号'@'%' identified by '密码';
  • 给新创建的用户赋予权限
grant all on *.* to '账号'@'%';
  • 使权限更改后立即生效
flush privileges;

数据库

  • 查看当前数据库
select database();
  • 展示所有数据库
show databases;
  • 创建数据库
create database [if not exists] database_name;
  • 删除数据库
drop database [if exists] database_name;
  • 进入数据库
use database_name;

表格

  • 查看所有表格
show tables;
  • 创建表格
create table [if not exists] table_name(字段名 类型[,字段名 类型]);
  • 删除表格
drop table table_name;
  • 查看表结构
desc table_name;或者show create table table_name;
  • 增   没写字段名时,默认给所有字段都增添值。
insert into table_name([字段名,字段名]) value(字段值);#一次性插入一行
insert into table_name([字段名,字段名]) valyes(字段值),[,(字段值),(字段值)];#一次性插入多行 insert into table_name set 字段名 = 字段值,字段名 = 字段值;
  • 删   where语句后接一个条件
delete from table_name [where 字段名 = 字段值];
uodate table_name set 字段名=  字段值 [where 条件];
select * from table_name;#查看一个表的所有数据
select 字段名 from table_name;#查看一个表的指定字段名的所有值

表约束

  • 非空约束(not null):保证在增添数据时,指定的字段名的值非空,否则会报错。下面创建了一个含有两个非空约束字段的表格。
create table table_name(id int not null,name varchar(20) not null);
  • 唯一约束(unique key):保证指定字段名下的值都是唯一的,不能有重复。
create table table_name(id int unique key,name varchar(20) not null);
  • 主键约束(primary key):保证指定字段名下的值是非空且唯一,它的作用是可以唯一标识一条数据,每张表里只能有一个主键,当表里没有指定主键时,第一个出现非空且唯一的列被当成主键。
create table table_name(id int primary key,name varchar(20) not null);
  • 自增长约束(auto_increment):自动编码,一般与主键组合使用,默认情况下起始值为1,每次增量为1,也可自己设定起始值。
create table table_name(id int unique key auto_increment [=起始值],name varchar(20) not null);
  • 默认约束(default):给指定字段设定一个默认值,插入数据时,若没有给这个字段赋值,则自动使用默认值。
create table table_name(age int not null default 18);
  • 外键约束(foreign key):保持数据的一致性,完整性,实现表格间的三种关系,三种关系在下面会有介绍。
foreign key(本表的字段名) references 其他表的表名(其他表的字段名);

有时一个字段名不能充当主键,但两个字段名联合就可以,这时可以设置一个联合主键。

primary key(字段名,字段名)

表关系

  1. 一对一:这时用外键方式将两个表的主键关联。
  2. 一对多:创建一个字段名,用外键方式将之与另一表的主键相关联。
  3. 多对多:创建一个中间表,用两次外键的方式分别与两张表的主键相关联。

修改表结构

  • 增加字段名 : 其中位置有first(表示放在第一列)和after,after后跟字段名,表示放在指定字段名的后一列。
alter table table_name [字段名][类型][位置];
  • 删除字段名
alter table table_name drop 字段名;
  • 改:改有三种,分别是改数据类型、字段名、表名。
alter table table_name modify 字段名 类型;#改数据类型
alter table table_name change 字段名 新字段名 类型;#改字段名
alter table 原表名 rename 新表名;

MySQL笔记(一)的更多相关文章

  1. MySQL笔记汇总

    [目录] MySQL笔记汇总 一.mysql简介 数据简介 结构化查询语言 二.mysql命令行操作 三.数据库(表)更改 表相关 字段相关 索引相关 表引擎操作 四.数据库类型 数字型 字符串型 日 ...

  2. 涂抹mysql笔记-数据库中的权限体系

    涂抹mysql笔记-数据库中的权限体系<>能不能连接,主机名是否匹配.登陆使用的用户名和密码是否正确.mysql验证用户需要检查3项值:用户名.密码和主机来源(user.password. ...

  3. centos7.2下安装Mysql笔记

    centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...

  4. MySQL笔记(六)游标练习

    23.3.1 Trigger Syntax and Examples 意义不明的几道练习,留着备用. 感觉不好写,而且难以调试..不知道以后会不会有实际的应用场景. 环境:MySQL 笔记(三)由 t ...

  5. mysql 笔记(一)

    mysql 笔记 预留 mysql> use mysql; mysql> grant all privileges  on *.* to root@'%' identified by &q ...

  6. 【MySQL笔记】SQL语言四大类语言

     SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL.   1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句, ...

  7. Mysql 笔记二

    Mysql 笔记二 Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup ...

  8. 深入浅出mysql笔记---1、mysql下载安装

    深入浅出mysql笔记---1.mysql下载安装 一.总结 一句话总结: linux下rpm安装即可 1.linux的wget命令作用? 下载文件的工具:比如wget http://cn.wordp ...

  9. 深入浅出mysql笔记---0、序

    深入浅出mysql笔记---0.序 一.总结 一句话总结: 心得:买书之前建议先找找电子书,纸质书太难带了 1.开源作用? 开源对mysql的发展至关重要 2.mysql在2002年就全面支持了事务, ...

  10. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

随机推荐

  1. 备份CSDN

    说明:https://blog.csdn.net/Feynman1999/article/details/87908082 源码:https://github.com/Feynman1999/CSDN ...

  2. QT多线程之---moveToThread用法

    在gui编程里,一个子函数的运行时间可能过长,界面就处于假死状态,原因是窗口是一个线程,子函数也在这个线程里,一些事件也要在这个线程里处理. 如果子函数运行时间过长,系统没有办法调用事件监听循环,gu ...

  3. Linux 压缩解压操作

    Linux 压缩解压操作 Linux解压文件到指定目录 tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数:-c :create 建立压缩档案的 ...

  4. x264报错No working C compiler found.

    现象: 缺少C++部署包 解决 [root@localhost x264]# yum -y install gcc gcc-c++ kernel-devel [root@localhost x264] ...

  5. [DDCTF 2019]homebrew event loop

    0x00 知识点 逻辑漏洞: 异步处理导致可以先调用增加钻石,再调用计算价钱的.也就是先货后款. eval函数存在注入,可以通过#注释,我们可以传入路由action:eval#;arg1#arg2#a ...

  6. 1.1 js中函数定义解析(学习笔记)

    1.1.1函数的分类 函数声明式 :使用function声明函数,并指定函数名. 函数表达式:使用function声明函数,但未指定函数名. 函数表达式2.匿名函数,匿名函数有很多作用,赋予一个变量则 ...

  7. windows FTP上传

    TCHAR tcFileName[MAX_PATH * 4] = {L"visio2010永久安装密钥.txt"}; TCHAR tcName[MAX_PATH * 4] = {0 ...

  8. Java算法练习——两数相加

    题目链接 题目描述 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新 ...

  9. java-正则表达式判断移动联通电信手机号

    package com.linbilin.phone; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  10. Springboot过滤器注解简笔

    对多个过滤的注解      @WebFilter(filterName="FirstFilter",urlPatterns={"*.do","*.js ...