MySQL数据管理结构

数据库:

数据存储的仓库。内部存放 表。 表有行列之分。

行: 记录、实体

列:域、字段。

数据库简史:

1. 萌芽阶段: 文件存储

2. 第一代:层次模型、网状模型

3. 第二代:关系型数据库:SQL server、Oracle、MySQL、DB2、infomix、SQLlite

非关系型数据库:redis、MongoDB

安装mysql:

按 aptitude:sudo apt-get install aptitude

测试 MySQL是否安装 sudo  aptitude show mysql-server—— 未安装

安装MySQL:sudo  apt-get/aptitude install mysql-server

测试 MySQL是否安装 sudo  aptitude show mysql-server—— 已安装

mysql -V—— 获取安装版本

MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf—— 配置文件

数据库、表存放位置/var/lib/mysql

MySQL的启动:

【重点】:MySQL数据库,要想使用,必须先启动MySQL服务器!!!

启动MySQL:

1.  sudo /etc/init.d/mysql start—— 在其他Linux上,存储目录有变化。

2.  sudo service mysql start—— 在Linux中 通用。

关闭和重启:

1.  sudo /etc/init.d/mysql stop/restart—— 在其他Linux上,存储目录有变化。

2.  sudo service mysql stop/restart—— 在Linux中 通用。

判断是否启动成功:

1. sudo service mysql status—— 如果能看到 绿灯:说明启动成功。

2. netstat -apn | grep mysql —— 查看到 LISTENING 状态的进程

3. ps aux | grep mysql

MySQL登录:

mysql -h127.0.0.1 -P3306 -uroot -p123456

-h:主机服务器ip—— 本机可以省略不写。

-P:端口号。默认3306 —— 可以省略不写

-u:用户名 —— 默认root

-p:密码—— 隐藏密码: -p 直接回车。

退出:

quit、exit、\q

mysql:

基于数据库的数据管理系统。

Oracle:

基于用户的数据管理系统。

数据库的 curd:

查询:

show databases;查看当前MySQL下的数据库

show create database 数据库名;查询创建 数据库的语法,以及当前数据库使用的 字符集。

创建:

语法:create database [if not exists] `数据库名` [字符集]

create database `mydb1`;默认创建的数据库 使用 latin1

create database if not exists `mydb2` charset=uf8;创建 使用 utf8 字符集的 mydb2 数据库。

字符集:latin1、GBK、GB2312、utf8

删除:

语法:      drop database [if exists] `数据库名`

drop database if exists mydb1;

如果:    数据库在MySQL中已经存在,有 if exists 不会报错,会删除数据库

数据库在MySQL中不存在,有 if exists 不会报错。

没有if exists 会报错。

修改:

只能修改字符集。

语法:alter database `数据库名` charset=新字符集;

alter database mydb2 charset=gbk;

表的curd:

【重点】:操作表之前,必须先选定数据库。  use 数据库名;

查询:

show tables;查询当前使用的数据库中,表信息。

show create table 表名; 查询创建表的 sql语句。可以看到表所使用的引擎和字符集。

show craete table 表名\G按行展示表数据

desc 表名;查看表结构。su

创建:

语法:create table [if not exists] `表名`(

字段名  数据类型 [not null | null] [auto_increment] [primary key] [comment],

字段名  数据类型 [default]....,

....

) engine=innodb charset=gbk;

创建简单表:

create table t3( id int, age int, name varchar(10) );

创建复杂表:

create table if not exists t2(

id int(9) auto_increment primary key comment '主键',

name varchar(20) not null comment '姓名',

phone varchar(20) comment '电话',

addr varchar(20) default '地址不确定' comment '地址'

)engine=innodb charset=gbk;

在 A 数据库中,向B数据库 创建表:

create table 数据库名.表名(字段名  数据类型,....);

删除:

语法:drop table [if exists] 表1,表2,… ;

修改:

语法: alter table 表名 【修改的形式】。

增加一个字段:

语法:alter table 表名 add [column] 字段名  数据类型 [位置];

alter table t2 add column age int(5) first;

alter table t2 add sex char(2) after id;

删除一个字段:

语法: alter table 表名 drop [column] 字段名;

修改一个字段:改名、改类型:

语法:alter table 表名 change  [column] 旧字段名 新字段名 数据类型;

alter table t2 change name fullname char(10);

修改一个字段:只改类型:

语法:alter table 表名 modify [column] 字段名  新数据类型;

alter table t2 modify column fullname varchar(15);

只修改表名:

rename table t2 to t8;或 alter table t8 rename to tb2;

修改默认引擎:

alter table tb2 engine=myisam;

复制表:

只复制表数据,不复制表属性。

语法: create table 新表名 select 字段名, 字段名,... from 表名。

create table tt8 select * from tb2;

只复制表属性,不复制表数据。

语法: create table 新表名 like 旧表名。

create table tt9 like tb2;

想得到两张相同的表:

1.  复制表属性。create table tt9 like tb2;

2.  复制表数据。insert into tt9 select * from tb2;

表数据的curd:

插入:

语法:insert into 表名(字段1, 字段2 .....)values(值1, 值2...)

全插入:

insert into tb2(id, fullname, phone, addr) values(1, '张三', '129000', '深圳');

insert into tb2 values(2, '张三', '129000', '深圳');

指定列插入:

语法:insert into 表名(字段1,字段5, 字段3)values(值1, 值5, 值3);

insert into tb2(id,fullname)vaules(3, '李白');

显示插入空值:

在允许为空的列,插入时,值传 null

隐式插入空值:

在允许为空的列,插入时,不插入数据。MySQL数据库会自动写入 null

隐式插入如默认值:

对于有默认值的 列, 插入时,不插入数据。MySQL数据库会自动写入 默认值。

插入多行:

insert into tb2 values(null, '陆游', null, default), (null, '李清照', '7777', '济南'), (null, '辛弃疾', '88888', '北京');

更新:

语法:update 表名 set 字段名=值 [where 条件];

修改一条记录的一个字段:

update tb2 set fullname='杜甫' where id = 4;

如果没有 where 条件,会修改整张表。

修改一条记录的 多个字段:

update tb2 set fullname='杜牧', phone='123987', addr='西安' where id=5;

修改多条记录:

update tb2 set phone='88888' where id =1 or id=3 or id=5 or id=7;

删除:

语法: delete from 表名 [ where 条件 ]

delete from tb2 where id >=5;

清空表:

delete from 表名;

将表中的数据,清空,表空间没有被释放。速度慢

truncate 表名;

将表摧毁,重建新表。表空间会被释放。速度快。

查询:

语法:select 列名,列名… from 表名 [ where 条件 ]

select id, name, addr from tb2 where id >=3;

SQL语句分类:

DML:insert、update、delete、select

DDL:  create、truncate、drop、alter

DCL:commit、rollback

明月三千里 mysql_Mysql 明月三千里 (一)相关推荐

  1. VMware里的linux系统里的命令行里会有bee的声音,要如何关掉

    VMware里的linux系统里的命令行里会有bee的声音,要如何关掉 取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的# ...

  2. TensorFlow里,shape=(?, 120)里的问号是怎么回事呢

    TensorFlow里,shape=(?, 120)里的问号是怎么回事呢   125 self.cos_sim (1024, 51) Tensor("cosine-imilarity-lay ...

  3. SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?

    SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值? 最近在准备一个采购订单行项目的增强的function spec.其中有一段逻辑是取到采购订单行项目条件里某个指定的条件类 ...

  4. 宏定义是写在.h文件里还是.c文件里

    宏定义是写在.h文件里还是.c文件里? 1.不管是定义在.h文件还会.c文件,程序都会正常运行. 2.如果.h中不需要用到的宏,都定义到.c里,因为等一个工程里需要include多个.h的时候,你在. ...

  5. 大公司里学做人,小公司里学做事。

    以前,公司都愿意找能力强.资格老的人来做研发,有点个人英雄主义在里面.一个优秀能干的员工能给公司带来很大的利益. 但是,凡事都有双面性. 现在这个社会,人才流动很快.能力强的.聪明的人,虽说给公司带来 ...

  6. c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...

    //遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName); var list = GetAll(dir); /// ...

  7. word里如何在□里打√!框框里打勾!!!!!

    word里如何在□里打√!框框里打勾!! 快捷便捷的方式 1.按住键盘上的[Alt]键不放,然后在小键盘区输入[9745]这几个数字,最后松开 ALT 键,自动变成框框中带勾符号: 2.在Word文档 ...

  8. 世界上最遥远的距离,是我在if里你在else里

    [size=x-large]一. 世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离:世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己:世界上最真情的相依, ...

  9. keil里的debug项里没有 proteus vsm 51解决方案

    我相信不少人在keil和proteus第一次仿真时,keil里的debug项里没有 proteus. 我就开始网上搜索解决方案,有的csdn还设置收费,可笑了,解决方法各有千秋,有的看着还有点复杂,在 ...

最新文章

  1. PS:将webp后缀图片最简单最快速的方法另存为png后缀的图片
  2. 缓存-分布式锁-缓存一致性解决
  3. video4linux简介
  4. spring依赖注入_Spring依赖注入
  5. 【牛客 - 370F】Rinne Loves Edges(树,统计dp)
  6. 转:绝对干货--WordPress自定义查询wp_query所有参数详细注释
  7. tomcat相关实验
  8. js中两种定时器,setTimeout和setInterval的区别
  9. 北京治堵新方案出台了!
  10. 三种urllib实现网页下载,含cookie模拟登陆
  11. 单片机控制直流电机正反转
  12. 数据挖掘十大经典算法(包括各自优缺点 / 适用数据场景)
  13. 测试笔记本续航的软件,【教程向】如果给笔记本降温及延长续航
  14. 安装VMware15.5+安装win10虚拟机操作系统
  15. windows下db2创建数据库
  16. 影视后期制作(Pr)
  17. bzoj1597 土地购买
  18. CentOS 8 安装tc流量控制工具
  19. 在angular中实现图片/视频的预览
  20. html5 canvas 一个漫天飞雪的效果

热门文章

  1. 《兰亭序》 五十个最得意的连笔字
  2. 消息102 级别15 状态1 服务器,sql-server - 修复:消息102,级别15,状态1,行37')'附近的语法不正确 - 堆栈内存溢出...
  3. PaddleOCR模型移植安卓
  4. [源码和文档分享]基于Android实现的OA办公自动化系统
  5. 北京大学2021年优秀中学生寒假学堂报名通知
  6. Cadence OrCAD原理图中快速查找元件的方法
  7. LoRa入门(2)—— PingPong测试(软件篇)
  8. 互联网服务平台身份核验解决方案
  9. 基于nodejs与花生壳内网穿透工具的调查问卷
  10. type=button 字体大一点_设计师必须要掌握的字体设计基础知识