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  92SQL-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  :服务器启动脚本。Unixnet 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          hhmmss                YYYY-MM-DD   YYYY-MM-DD HH:MM:SS

1901~2155  -837:59 59~838                          1970-01-01 000001~2038-01_19  031407

字符串类型

CHAR   VARCHAR  BINARY  VARBINARY  BLOB  TEXT  ENUM  SET

 

 

 

 

 

 

 

 

 

函数

 

 

 

x显示当前线程

 

获取当前用户名

 

获取字符串的字符集

 

加密

 

格式化 显示

 

GET_LOCK 设法使用字符串str给定的名字得到一个锁,超时未timeout秒 , 若成功得到锁则返回1 若超时操作时,则返回0  若发生错误,则返回null

Release——localstr)解开被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_listSELECT column_l

 

修改

UPDATE  table_name

SET column——name1 =valuelcolumn_name2=value2.... wherecondition

 

Delete formtable_name [wherecondition]

 

 

 

 

 

 

 

 

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 counts_idas count from fruits

 水果价格降序

select

链接查询

select 表名1.s_ids_name,f_name,f_price

from 表名2 inner join 表名1

on fruitss_id=supplierss_id

  有学习的小伙伴可以一起讨论有问题可以问我,微信 15321502296

posted @ 2018-05-14 12:09  cold-spirit-bear  阅读(453)  评论(0编辑  收藏  举报