MySQL认知
MySQL
认识MySQL
MySQL是什么?
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
为什么要学Mysql
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性
MySQL是开源的,免费
MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL使用标准的SQL数据语言形式。
MySQL可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、PHP等(也就是说编程语言离不开数据库,学好MySQL是必须的!!!)。
数据库
什么是数据库?
数据库就是用来存储和管理数据的仓库!
理解数据库
RDBMS(关系数据库管理系统) = 管理员(manager)+数据库(database)
database = N个table
table:
- 表结构:定义表的列名和列类型!
- 表记录:一行一行的记录!
数据库有关术语
数据库: 数据库是一些关联表的集合。.
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
应用程序与数据库
安装MySQL数据库
安装MySQL
安装文件存放路径:不能有中文和空格!
校验是否安装成功:
右击计算机~管理~服务~
打开cmd~执行代码mysql -hlocalhost -uroot -p ~回车输入密码
基本命令
启动和关闭mysql服务器
(除此之外有种非命令行进行启动关闭,可自己尝试搜索)
l 启动:net start mysql;
l 关闭:net stop mysql;
客户端登录退出mysql
l 登录:mysql –hlocalhost –uroot –p
- -h:后面给出的localhost是服务器主机名,它是可以省略的
- -u:后面的root是用户名,这里使用的是超级管理员root;
- -p:后面的123是密码,这是在安装MySQL时就已经指定的密码;
l 退出:quit或exit;
SQL语句
什么是SQL?
SQL(Structured Query Language)是“结构化查询语言”
语法要求
l SQL语句可以单行或多行书写,以分号结尾;
l 可以用空格和缩进来来增强语句的可读性;
l 关键字不区别大小写,建议使用大写
SQL语法要求
l DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;
l DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);
l DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;
l DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
数据类型
MySQL中数据类型主要应用在列上。
常用类型:
l int:整型
l double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
l decimal:泛型型,在表单钱方面使用该类型,因为不会出现精度缺失问题;
l char:固定长度字符串类型;
l varchar:可变长度字符串类型;
l text:字符串类型;
l blob:字节类型;
l date:日期类型,格式为:yyyy-MM-dd;
l time:时间类型,格式为:hh:mm:ss
l timestamp:时间戳类型;
DDL
基本操作
l 查看所有数据库名称:SHOW DATABASES;
l 切换数据库:USE mydb1,切换到mydb1数据库
l 创建数据库:CREATE DATABASE [IF NOT EXISTS] mydb1;
创建数据库,例如:CREATE DATABASE mydb1,创建一个名为mydb1的数据库。如果这个数据已经存在,那么会报错。例如CREATE DATABASE
IF NOT EXISTS mydb1,在名为mydb1的数据库不存在时创建该库,这样可以避免报错。
l 删除数据库:DROP DATABASE [IF EXISTS] mydb1;
删除数据库,例如:DROP DATABASE mydb1,删除名为mydb1的数据库。如果这个数据库不存在,那么会报错。DROP DATABASE IF
EXISTS mydb1,就算mydb1不存在,也不会的报错。
l 修改数据库编码:ALTER DATABASE mydb1 CHARACTER SET utf8
修改数据库mydb1的编码为utf8。注意,在MySQL中所有的UTF-8编码都不能使用中间的“-”,即UTF-8要书写为UTF8。
表操作
l
创建表:
CREATE TABLE 表名(
列名 列类型,
列名 列类型,
......
);
l
查看当前数据库中所有表名称:SHOW TABLES;
l
查看指定表的创建语句:SHOW
CREATE TABLE emp,查看emp表的创建语句;
l
查看表结构:DESC
emp,查看emp表结构;
l
删除表:DROP
TABLE emp,删除emp表;
l
修改表:
- 修改之添加列:给stu表添加classname列:
ALTER TABLE stu ADD (classname varchar(100));
- 修改之修改列类型:修改stu表的gender列类型为CHAR(2):
ALTER TABLE stu MODIFY gender CHAR(2);
- 修改之修改列名:修改stu表的gender列名为sex:
ALTER TABLE stu change gender sex CHAR(2);
- 修改之删除列:删除stu表的classname列:
ALTER TABLE stu DROP classname;
- 修改之修改表名称:修改stu表名称为student:
ALTER TABLE stu RENAME TO student;
DML
插入数据
(注意:所有字符串数据必须使用单引用!)
INSERT INTO 表名(列名1,列名2, …) VALUES(值1,
值2)
修改数据
语法:
UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]
删除数据
DELETE FROM 表名 [WHERE 条件]
MySQL认知的更多相关文章
- mysql进阶(十七)Cannot Connect to Database Server
Cannot Connect to Database Server 缘由 由于不同的项目中使用的数据库用户名与密码出现了不一致的情况,在其中之前较早一个项目执行过程中出现"The user ...
- 初步认知MySQL metadata lock(MDL)
http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...
- MYSQL存储过程初步认知
存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...
- 记一次线上问题 → 对 MySQL 的 ON UPDATE CURRENT_TIMESTAMP 的片面认知
开心一刻 老婆痛经,躺在沙发上,两岁的女儿看着她问道 女儿:妈妈,你怎么了 老婆:妈妈肚子痛 女儿:哦,妈妈你头疼 老婆:不是头疼,妈妈是肚子疼 女儿用她的不锈钢饭碗砸向老婆的额头,说道:妈妈,你哪里 ...
- .NET高性能框架Chloe.ORM-完美支持MySql
扯淡 这是一款轻量.高效的.NET C#数据库访问框架(ORM).查询接口借鉴 Linq(但不支持 Linq).借助 lambda 表达式,可以完全用面向对象的方式就能轻松执行多表连接查询.分组查询. ...
- MySQL索引原理及慢查询优化
原文:http://tech.meituan.com/mysql-index.html 一个慢查询引发的思考 select count(*) from task where status=2 and ...
- mysql 数据类型拾遗
写这篇博客的原因是在建表的过程我建表时,在表名和字段名上没有注意,违背了团队的开发规范.我们团队规范是,名字上要能够体现对象的特征. 比如: 数据库要写db_dbname 表名要写tb_tbname ...
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...
- (转)MySQL索引原理及慢查询优化
转自美团技术博客,原文地址:http://tech.meituan.com/mysql-index.html 建索引的一些原则: 1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到 ...
随机推荐
- php ftp 使用 以及 php_connect_nonb() failed: Operation now in progress (115)
设置 ftp_pasv($conn,true); 会出现下面错误 不设置 调用ftp 连接没问题 ftp_nlist ftp_put ftp_get 等函数都不成功 ftp_nb_fput( ...
- 克里金插值 调用matlab工具箱
克里金插值 克里金插值是依据协方差函数对随机过程或随机场进行空间建模和插值的回归算法. 克里金插值法的公式为: 式中为待插入的各点的重金属污染值,为已知点的重金属污染值,为每个点的权重值. 用BLUP ...
- 输出《Harry Potter and the Sorcerer's Stone》文本中的前N个最长用的英文单词及其数量
输出<Harry Potter and the Sorcerer's Stone>文本中的前N个最长用的英文单词及其数量 实验思路: 1. 利用输入流将文件当中内容读入. 2. 将文件内容 ...
- IntelliJ IDEA 如何彻底删除项目的步骤
原文参考链接:https://www.jb51.net/article/129473.htm 本文介绍了IntelliJ IDEA 如何彻底删除项目的步骤,分享给大家,顺便给自己留个笔记,具体如下: ...
- Python标准库之hashlib模块与hmac模块
hashlib模块用于加密相关的操作.在Python 3.x里代替了md5模块和sha模块,主要提供 SHA1.SHA224.SHA256.SHA384.SHA512 .MD5 算法.如果包含中文字符 ...
- Fiddler抓取https方法
基本配置 菜单 -> menu -> tool -> https 勾选"捕获https连接" 勾选"捕获https流量" 勾选"检查 ...
- 深入理解IP之CIDR
现代IP基于分类的IP越来越少,而基于CIDR的方式的越来越多.那么可以看下面这篇文章: https://www.cnblogs.com/hark0623/p/6547432.html 这篇文章对CI ...
- react-native构建基本页面6---打包发布
签名打包发布Release版本的apk安装包 请参考以下两篇文章: ReactNative之Android打包APK方法(趟坑过程) React Native发布APP之签名打包APK 如何发布一个a ...
- 洛谷p1980 计数问题
题目描述 试计算在区间 111 到 nn n的所有整数中,数字x(0≤x≤9) x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 111到11 11 11中,即在 1,2,3,4,5, ...
- 被遗忘的宝藏-LaTeX发行版自带字体&自己一些字体心得
KMC大作,如果用xelatex的话,这些知识仅仅作为大家了解.希望对于学习latex有所裨益.原文地址:http://bbs.ctex.org/viewthread.php?tid=43596&am ...