明月三千里 mysql_Mysql 明月三千里 (一)
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 明月三千里 (一)相关推荐
- VMware里的linux系统里的命令行里会有bee的声音,要如何关掉
VMware里的linux系统里的命令行里会有bee的声音,要如何关掉 取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的# ...
- TensorFlow里,shape=(?, 120)里的问号是怎么回事呢
TensorFlow里,shape=(?, 120)里的问号是怎么回事呢 125 self.cos_sim (1024, 51) Tensor("cosine-imilarity-lay ...
- SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值?
SAP S4HANA如何取到采购订单ITEM里的'条件'选项卡里的条件类型值? 最近在准备一个采购订单行项目的增强的function spec.其中有一段逻辑是取到采购订单行项目条件里某个指定的条件类 ...
- 宏定义是写在.h文件里还是.c文件里
宏定义是写在.h文件里还是.c文件里? 1.不管是定义在.h文件还会.c文件,程序都会正常运行. 2.如果.h中不需要用到的宏,都定义到.c里,因为等一个工程里需要include多个.h的时候,你在. ...
- 大公司里学做人,小公司里学做事。
以前,公司都愿意找能力强.资格老的人来做研发,有点个人英雄主义在里面.一个优秀能干的员工能给公司带来很大的利益. 但是,凡事都有双面性. 现在这个社会,人才流动很快.能力强的.聪明的人,虽说给公司带来 ...
- c# 遍历文件夹深度_C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)...
//遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName); var list = GetAll(dir); /// ...
- word里如何在□里打√!框框里打勾!!!!!
word里如何在□里打√!框框里打勾!! 快捷便捷的方式 1.按住键盘上的[Alt]键不放,然后在小键盘区输入[9745]这几个数字,最后松开 ALT 键,自动变成框框中带勾符号: 2.在Word文档 ...
- 世界上最遥远的距离,是我在if里你在else里
[size=x-large]一. 世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离:世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己:世界上最真情的相依, ...
- keil里的debug项里没有 proteus vsm 51解决方案
我相信不少人在keil和proteus第一次仿真时,keil里的debug项里没有 proteus. 我就开始网上搜索解决方案,有的csdn还设置收费,可笑了,解决方法各有千秋,有的看着还有点复杂,在 ...
最新文章
- PS:将webp后缀图片最简单最快速的方法另存为png后缀的图片
- 缓存-分布式锁-缓存一致性解决
- video4linux简介
- spring依赖注入_Spring依赖注入
- 【牛客 - 370F】Rinne Loves Edges(树,统计dp)
- 转:绝对干货--WordPress自定义查询wp_query所有参数详细注释
- tomcat相关实验
- js中两种定时器,setTimeout和setInterval的区别
- 北京治堵新方案出台了!
- 三种urllib实现网页下载,含cookie模拟登陆
- 单片机控制直流电机正反转
- 数据挖掘十大经典算法(包括各自优缺点 / 适用数据场景)
- 测试笔记本续航的软件,【教程向】如果给笔记本降温及延长续航
- 安装VMware15.5+安装win10虚拟机操作系统
- windows下db2创建数据库
- 影视后期制作(Pr)
- bzoj1597 土地购买
- CentOS 8 安装tc流量控制工具
- 在angular中实现图片/视频的预览
- html5 canvas 一个漫天飞雪的效果
热门文章
- 《兰亭序》 五十个最得意的连笔字
- 消息102 级别15 状态1 服务器,sql-server - 修复:消息102,级别15,状态1,行37')'附近的语法不正确 - 堆栈内存溢出...
- PaddleOCR模型移植安卓
- [源码和文档分享]基于Android实现的OA办公自动化系统
- 北京大学2021年优秀中学生寒假学堂报名通知
- Cadence OrCAD原理图中快速查找元件的方法
- LoRa入门(2)—— PingPong测试(软件篇)
- 互联网服务平台身份核验解决方案
- 基于nodejs与花生壳内网穿透工具的调查问卷
- type=button 字体大一点_设计师必须要掌握的字体设计基础知识