mysql第一次学习和使用
作为一个小白,唯一的自学能力很重要。偏向于linux系统的学习。
有学习的小伙伴可以一起讨论有问题可以问我,微信 15321502296
第一次学的人也可以看看。截图较多
Mysql 命令
进入mysql mysql -u root -p
查看当前所有数据库: SHOW DATABASES
进入某一个数据库: use + 数据库名 查看库中数据表 SHOW TABLES+ 表名 如果没在数据库中也需要吧库名 加入
查看数据表内容 DESCRIBE + 表名 简写 DESC +表名
创建新的库 CREATE DATABASES+库名 +
MySQL
DBMS开源数据库管理系统
数据库 管型数据库和非管型数据库
人工管理阶段
文件系统阶段
数据库系统阶段
高级数据库阶段
层次数据库
网路数据库
关系数据库
DB (database) 是一个长期储存计算机内的,有组织的有共享的统一管理的数据集合,他是一个按数据结构来存储和管理数据的计算机软件系统
数据表是一系列的二维数组的结合
行被称为记录 组织数据的单位
列被称为字段 每一列表示记录的一个属性
数据类型 决定数据在计算内存储的方式是什么
主键
Primary key 用于唯一的标识表中的每一条记录 主键不能重复 可以设为空
数据库系统
1数据库:存放数据 容器
2数据库管理系统 dbms (DataBase Manafement System)
3数据库的应用程序
SQL语句: 查找或修改所使用的语言 结构化查询语言
ANSI 92年 SQL-92 SQL99美国国家标准机构
SQL语句分类
DDL:数据库定义语言
DML:数据操作语言
DQL:数据查询语言
DCL:数据控制语言
数据库的访问技术
Mysql -uroot -p
ODBC 开放数据库互联
JDBC jave进行数据库操作
ADO.NET 微软开发设计
PDO 由PHP所开发的访问数据库的接口
C/S
Client server
Communication server 社区版mysql
不收费 服务表企业版少
Enterprise server 企业版
Mysql 优点
1开源价格
2运行速度快
3简单易学习易于使用
4可移植性强 可以安装不同操作系统
5丰富的接口
6支持查询语句
7安全性和链接行强
Mysql 服务器实用工具
Mysql :SQL 后台程序。改程序必须运行之后,客户端才能通过连接服务器来访问数据库
Mysqld_safe :服务器启动脚本。Unix和net ware 实用来启动mysqld服务器
Mysql.service 服务器启动脚本改脚本用于使用包含特定级别,运行启用服务的脚本,运行目录的系统 它调用mysqld_safe 来启动mysql 服务器
Mysql_multi:服务器启动脚本
Bin下
Perror 报错
Mysql 命令
引擎:是指数据库底层软件组件
InnoDB;
1、调教、回滚崩溃恢复 行级别锁定
2、处理巨大的数据量的数据
3、外键
4、没有限制内存
5.5版本之前是myisam 后缀是.frm
MyISAM 基于ISAM
不支持外键
支持最大的索引64字节每个索引最大的列数16列最大的键的长度为1000字节
可以在BLOB 和 TEXT 上做索引
MEMORY
每个表可以有32个索引 每个索引16列可以用500字节
执行HASH 和BTREE索引
固定
不支持BLOB TEXT
可以再所有的客户端共享
支持ANTO_INCREMENT HE NULL
存在内存当中
释放Delete from 或 truncate table
删除 drop table
功能 |
MyISAM |
Memory |
InnoDB |
|
储存限制 |
256TB |
RAM |
64TB |
|
支持事物 |
NO |
NO |
YES |
|
支持全文索引 |
YES |
NO |
NO |
|
支持数索引 |
YES |
YES |
YES |
|
支持哈希索引 |
NO |
YES |
NO |
|
支持数据缓存 |
NO |
|
YES |
|
支持外键 |
NO |
NO |
YES |
|
SHOW DATABASE 查看数据库 J进库 use+
创建表
CREATE TABLE <表名>
(字段1 数据类型 默认值 约束条件
字段2
主键
字段名 数据类型 PRIMARY KEY
外键
给两个表之间创建链接,一个表可以为空键
外键必须对应主表的主键
【CONSTRAINT<外键名>】FOREIGN KEY 字段1 [字段2] REFERENCES<主表>主键列
非空约束
字段名 数据类型 NOT NULL
唯一性约束
字段名 数据类型 UNIQUE
一个表里可以有多个唯一性约束 主键不能为空 唯一性约束可以有空
字段名 +数据类型 +default+ 默认值
设置表的属性值自增
字段名 数据类型 AUTO_INCREMENT
查看DESC 或DESCRIBE 表名
SHOW CREATE TABLE tb_emp8\G
修改ALTER
修改表名
ALTER TABLE 《就表名》 RENAME 《新表明》
修改字段数据类型
10ALTER TABLE 《表名》MODIFY <字段名》 《数据类型》
修改字段名
ALTER TABLE <表名》 CHANGE 《旧字段名》《新字段名》《数据类型》 可以改数据类型
ALTER TABLE 表名 ADD 字段名 first 放在表最前面 after 放在最后 不加任何参数默认放在最后
ALTER TABLE tb1 DROP zhangyi 删除tb1 表里的zhangyi字段
修改字段的排列位置
Alter table 《表名》modify《字段1》<数据类型》first | after <字段二》
删除数据包
DROP TABLE [IF exists] 表名1 删除有关联的时 先删除关系 或者先
修改引擎
删除标的外键约束
表中不一定要有主键
并不是每个表都可以随意选择存储引擎
带AUTO_INCREMENT 不一定从以开始
删除鼠标表里内容
INSERT INTO 表 加数值 变量数值
加引号字符格式 不带引号是数字模式
数据类型
数字数据类型
1字节 2的八次方-1 没符号256 2字节 3字节 4字节 8字节
TINYINT 有符号127 SMALLINT MEDUMINT INT BIGINT 整数
很小的整数
4字节 8字节 x 字节FLOAT 单精度浮点DOUBLE双精度浮点 DECIMAL压缩的严格的定点数
6位之后进0 不进
日期时间的数据类型
YEAR TIME DATE DATETTIME TIMESTAMP
1 hh:mm:ss YYYY-MM-DD YYYY-MM-DD HH:MM:SS
1901~2155 -837:59 :59~838 1970-01-01 00:00:01~2038-01_19 03:14:07
字符串类型
CHAR VARCHAR BINARY VARBINARY BLOB TEXT ENUM SET
函数
x显示当前线程
获取当前用户名
获取字符串的字符集
加密
格式化 显示
GET_LOCK 设法使用字符串str给定的名字得到一个锁,超时未timeout秒 , 若成功得到锁则返回1 若超时操作时,则返回0 若发生错误,则返回null
Release——local(str)解开被get_lock 获取的锁,如果锁被解开返回1 若末get_lock则返回0,若锁名不存在则返回null
Is_free_lock (str); 检查名为str的锁是否可以使用。若锁可以使用则返回1 锁正在被使用的话返回0 如果出现错误则返回null
Is_used_lock(str):检查名为str的锁是否正在被使用。若被封锁,则返回正在使用的客户端的连接标识符。否则则返回null
%d 该月日期。数字形式(00..31)
%e 该月日期,数字形式(0..31)
%f 微秒 (000000...999999)
%H 以2位数表示24小时(00..23)
%h,%1 以2位数表示12小时(01..12)
%i 分钟,数字形式 (00-59)
%j 一年中的天数(001-366)
%k 以24小时(0-23)
%l 以12小时(0..12)
%M 月份名称 (January..December)
%m 月份数字形式(00..12)
%p 上午(AM)或下午(PM)
%r 时间,12小时制(小时hh: 分钟mm: 秒钟ss 后面加AM 或PM)
%S,%s 以1位数形式表示秒900..59)
%U周(00..53),其中周日为每周的第一天
%u 周(00..53),其中周一为每周的第一天
%V周(01..53),其中周日为每周的第一天和%X 一起使用
%v 周 (01..53),其中每周一为每周的第一天和%x一起使用
%W 工作日名称(周日..周六)
%w 一周日的每日(0=周日..6=周六)
%X 该周的年份,其中周日为每周的第一天;数字形式4位数,he %
INSERT INTO table_name (column list)
查询的结果插入表里面
INSERT INTO table_name (column_list) SELECT (column_l
修改
UPDATE table_name
SET column——name1 =valuel, column_name2=value2.... where(condition)
Delete formtable_name [where(condition)]
SELECT
{*|<字段列表> }
[
FROM <表1>,<表2>..
[WHERE <表达式>]
[GROUP BY <group by definition>] 显示一些数据按照分组方式
[HAVING<expression>
[{<operator><expression>}...]]
[ORDER BY <order by definiton>]
[LIMIT<offset>]
带BETWEEN AND 的范围查询
带 LIKE的字符匹配查询
查看 为空 NULL
Or
Select distinct 字段名 from 表名
字母排序
攘夺列字段排列 指定排序的方向是第一个开始 字母是 a-z z-a
倒着查看 加des
Asc 是升序
分组查询
Group by 字段 having 条件表达式
集合啦里只有一个的删除显示了
With Rollup 新增加一个记录 求综合
Group by order by
limit 查询前四行
select * from fruits limit 4,3;
结合函数
AVG() 平均值
COUNT()行数
MAX()最大
MIN()最小
SUM()求和
select count(s_id) as count from fruits;
水果价格降序
select
内 链接查询
select 表名1.s_id,s_name,f_name,f_price
from 表名2 inner join 表名1
on fruits。s_id=suppliers。s_id;
有学习的小伙伴可以一起讨论有问题可以问我,微信 15321502296