Mysql基础(入门)

一、数据库介绍

1.什么是数据库

数据库就是⼀个存放计算机数据的仓库,这个仓库是按照⼀定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来对数据进⾏组织和存储的,可以通过数据库提供的多种⽅法来管理其中的数据。
2、数据库的种类
最常⽤的数据库模式主要有两种,即关系型数据库和⾮关系型数据库。

3、⽣产环境常⽤数据库

⽣产环境主流的关系型数据库有 Oracle、Microsoft SQL Server、MySQL/MariaDB等。
⽣产环境主流的⾮关系型数据库有 Mongodb Memcached Redis

4、MySQL 数据库

MySQL 数据库是⼀个中⼩型关系型数据库管理系统,软件开发者为瑞典 MySQL AB 公司。在
2008年1⽉16号被 Sun 公司收购,后 Sun 公司⼜被 Oracle 公司收购。⽬前MySQL 被⼴泛地应⽤
在 Internet 上的⼤中⼩型⽹站中。由于其体积⼩、速度快、总体拥有成本低,尤其是开放源码这
⼀特点,许多⼤中⼩型⽹站为了降低⽹站总体拥有成本⽽选择了 MySQL 作为⽹站数据库,甚⾄国
内知名的淘宝⽹也选择弃⽤ Oracle ⽽更换为更开放的 MySQL。

主要应⽤范围:互联⽹领域,⼤中⼩型⽹站,游戏公司,电商平台等等。

二、数据库操作

1.结构化查询语句分类

SQL(Structured Query Language 即结构化查询语言)SQL是⽤于访问数据库的标准化语⾔。
名称解释命令
DDL语句 数据库定义语言定义和管理数据对象,如数据库、表等CREATE DROP ALTER
DML语句数据库操纵语言用于操作数据库对象中所包含的数据插入数据INSERT、删除数据DELETE、更新数据UPDATE
DCL语句 数据库控制语言用于管理数据库的语言,包括管理权限及数据更改例如控制用户的访问权限GRANT、REVOKE
DQL语句数据库查询语言用于查询数据库数据查询数据SELECT
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。

MySQL所使⽤的 SQL 语⾔是⽤于访问数据库的最常⽤标准化语⾔。MySQL 软件采⽤了双授权政策,分为社区版和商业版,由于其体积⼩、速度快、总体拥有成本低,尤其是开放源码这⼀特点,⼀般中⼩型⽹站的开发都选择 MySQL 作为⽹站数据库。

什么是库?

在操作系统里它的本质就是一个目录。

例如:在mysql里创建一个库create database db3;它在文件系统里就是多了一个目录,cd /var/lib/mysql/(yum安装数据库数据存储的位置) 在这里面有一个db3目录,这就是刚刚create database db3做出来的。cd db3,ls  有个初始文件,db.opt。

在数据库创建一张表create table t3(id int);再切过去看会发现多了一个t3.frm。这个是表文件,frm里面存的是表结构,表结构就是一张表一共有几个字段,每个字段叫什么,他把这些东西存到这里了。

数据并没有存到frm,比如要往里面插一条记录/数据,并没有存到这里,存到外面了在cd /var/lib/mysql/,ls   ibdata1,不管现在有几张表,表里的所有数据都会在这里存储,都合到一个文件了。

 假如数据库里有一张表,每一列的第一行叫表头/字段名称,每一列称为字段,假如有五列,就是有五个字段,这五个字段就是表结构。数据就是从第二行开始,每一行称它为记录,记录里存储的就是数据。一整条数据我们就称它为一个记录。有第一个记录也可以有第二个记录,这些数据全部都存在ibdata1文件里,一张表的数据存在这里了,再创建一张表它的数据也是存到这里了。

ibdata1存储数据的文件,也称为表空间/表空间文件。

数据库里面就是由库和表组成。库就是目录,比如有一个db1的库,在目录里面会有表,表创建出来之后,它的表结构文件会存在库里面,数据会存在外面统一的表空间文件里。数据文件。

库操作

系统数据库
information_schema虚拟库,文件系统根本没有这个库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
performance_schema主要存储数据库服务器的性能参数
mysql授权库,主要存储系统用户的权限信息
sys主要存储数据库服务器的性能参数

这都是系统已经创建好的,默认库,不同的版本,里面的系统库不一样,有的版本是sys。有的是test。最没用的就是test,是空库,做测试用的。也可以自己创建,剩下三个不能改,也不能用。必须知道msyql库,比如创建的用户会存在库里的表里去,用户的权限也会存在库里的某些表,这是最核心的库,初始化之后的库,平时不能动,除非做权限有关的东西。能看见目录的才是真实的库。

创建数据库:DDL

两种方法

1、在shell里,用mysqladmin去创建

#mysqladmin -u root -p1 create db1     (-p后面不能加空格)

2、在客户端连到服务器里边之后,用sql语句创建

mysql> create database kai;    #kai是数据库名称

数据库命名规则:

区分大小写,库的名字要有意义。,唯一性,不能使用关键字如 create select,不能单独使用数字,每条sql语句都要以;结尾,但是如果列比较多,想看的清楚一点,可以以\G结尾

翻转显示:\G

sql语句后面跟\G,一般适合查看字段比较多的东西,会翻转 select * from user\G,行变成了列,一条记录一个row。

 mysql> select * from mysql.user\G   绝对路径,加一个库的名字,它就会去mysql库里找user表。把这个写在脚本里,就不用写两条指令了,就不用先切库,再去找表了。直接一条指令就行。

命令行操作数据库脚本

在脚本里这样写,mysql -e ‘show databases;’    e执行,执行后面跟引号,引号里面写sql语句。 能在shell执行也能在脚本里执行,还可以写多条语句用分号隔开就行了。

 mysql -e 后面可以跟sql语句,sql语句直接用分号隔开,这种方法大部分情况没什么问题,但是有的时候需要往里面传变量可能就会有问题了。

 这样传变量非常容易传,因为外面没有双引号单引号。这些东西完全可以写到脚本里面,bash执行

[root@mysql mysql]# vi a.sh

平时sql语句比较少的情况下,不用怎么传变量,直接-e,sql语句比较多就用<<eof

 echo后面跟sql语句,比如select * from mysql里面的user表通过管道符交给msyql客户端运行,(要是有用户和密码,加上)。这种方法不大好,因为这个想传变量也会有麻烦,最好的方法是直接写到脚本用eof,

# cat a.sh

#! /bin/bash

/usr/local/mysql/bin/mysql -u root -p'Helloworld123!' 2>/dev/null <<eof

select 5-2;

use test;

select * from t1;

eof

 查看数据库

mysql> show databases;  查看现有数据库

mysql> show create database db1;  可以看到数据库里面比较详细的一些信息

mysql>select database(); 查看当前所在库或者show tbales;根据里边的表判断一下所在库

切换库 

use db1;切换库

删除数据库

drop database db1;

drop 丢弃    drop删掉的都是大物件   delet 删掉的都是小文件比如删一条记录就用delet,删表删库用drop   字段属大记录小

表操作

是数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录。

使用编辑器编辑指令

mysql> edit     (这是一个vi编辑器) 

mysql> \e

edit (这是一个vi编辑器)在里面可以写很多语句,\e和edit是一样的写法

 三条指令直接执行了,可以用这种方法去批量的执行各种语句,

 在mysql客户端内执行系统命令

mysql> system ls

mysql> \! ls 

类似在vim执行系统命令一样,vim a 打开一个a文件,在里面可以编辑,但是编辑中途,想查看系统根目录下面有什么东西,又不想保存退出,就输入:! 后面跟上系统命令。

 这种一般都是我们在没有其他终端可用的情况下,又不想退出当前这个东西,才使用这种方法。

 这种看起来高大上,用处不大,可以直接复制标签,也不用退出去。

创建表 

create table class22(id int(10));

create table 表名(字段名称  属性信息[(宽度) 约束条件],

create table固定语法 表的名称小括号里面是字段全都拿逗号隔开  字段名称自己定义,有意义就行,字段名称后面一般都会跟约束或描述都行,有的时候需要设置一些特殊的属性信息,可能需要在后面再跟一些什么什么属性,

表名最好不要是纯数字,在前面加一些字符

查看表

show tables;    查看表

show create table t1; 查看表的创建过程

show table status like 't1'\G      查看表的详细的一些信息,(后面跟表的名字,或者表名里的关键字,它会查看多张表,查看固定的表,把表名写全就好了)

查看表结构 

desc t1;

查看有几个字段,desc t10; 数据少的可以用select * from t10;

【注意】在公司不要这样做,因为在公司数据可能会有上千万条,比如mysql早期的版本,一张表最多支持4千万条记录。这么执行,机器直接爆了,占资源,在公司不要这么干,如果想查字段,最好用desc,这个只查看表结构的文件,不查看数据文件,这个占用的资源不会太多,是可以随便用。

插入数据

1.insert into t1 set id=1,name="k",grade=3;   给一个字段或者两个字段添加数据,(数字不加引号,字符串必须加引号)

2.insert into t1(id,name,grade) value(2,"lilei","4"); 表名的后面加小括号,小括号里面写想要插入数据的字段,分别给他们什么样的值。

同时插入多条记录,接着写小括号,用逗号隔开。

 单引号,双引号在这里一样的用法

3.insert into t1 values(4,"dd",50,100);省略了表后面的小括号,要给所有的字段设置值,后面的会依依赋值给所有字段

查看表的内容

select * from t1; *表示所有的字段    查看所有     

select id,name from t1; 查看单独的某一列或者两列,把字段名称写上,用逗号隔开

修改表的名称

1.rename table t1 to t2;   

2.alter table t2 rename t1;

 添加新的字段   

先查看有几个字段,desc t2;

alter table t2 add grade int(20); 

删除字段 

alter table t2 drop grade;

修改字段数据类型修饰符 

alter table t10 modify name char(10);   修改属性

alter table t10 change name xingming  char(10);     修改名字

修改字段的位置

first after    修改它的位置  比如;原来是第三个字段现在想把它变成第二个字段

mysql> alter table t1 modify xingming varchar(10) after id;     xingming到中间  after后面跟id的名字

 mysql> alter table t1 modify name varchar(10) first;   字段name到第一个

对于平时sql语句的查询来讲,它在哪个位置根本无所谓,因为到时候是按条件查询,它在第几个字段,根本不重要,影响的只是观感。

更新记录   

update t2 set name="lili" where id=5;   只能用set,因为更新是更新其中某一个。不加条件改所有

删除记录   

delete from t1 where id=6;   不加条件删所有

mysql> delete from t1; //删除所有记录

表复制:key不会被复制: 主键、外键和索引

复制一张表

mysql> create table t10(select * from t3);把t3复制到t10  看起来非常像,但是字段的有些属性是复制不过来的,只把名称复制过来

mysql> create table t10(select id,name from t3);

复制表结构

mysql> create table t10(select * from t3 where 1=8);  加一个永远不成立的条件,这种情况复制的东西只有表结构     单独复制表结构,不复制记录,加一个永远不成立的条件。

mysql> create table t4(select id,name from t3 where 5=4);

复制记录

mysql> insert into t3(select * from t10 where id=9);只复制一条记录

删除单张表   

drop table t2;

删除多张表

mysql> drop table t1,t2,t3;  逗号隔开就行

【注意】不要拖延要积极,不要心动要行动。

  • 12
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL入门学习(1)。   MySQL入门学习(1) · 安装篇 PHP+MySQL+Linux目前已逐渐成为小型web服务器的一种经典组合。在indows环境下构筑和调试MySQL数据库是许多网站开发者的一种首选。本人在Windows98环境下初学MySQL,现将学习过程与经验总结出来供大家参考。 1、下载mysql-3.23.35-win.zip并解压; 2、运行setup.exe;选择d:\mysql,"tyical install" 3、启动mysql,有如下方法: · 方法一:使用winmysqladmin 1)、进入d::\mysql\bin目录,运行winmysqladmin.exe,在屏幕右下角的任务栏内会有一个带红色的图符 2)、鼠标左键点击该图符,选择“show me”,出现“WinMySQLAdmin”操作界面;首次运行时会中间会出现一个对话框要求输入并设置你的用户名和口令 3)、选择“My.INI setup” 4)、在“mysqld file”中选择“mysqld-opt”(win9x)或“mysqld-nt”(winNT) 5)、选择“Pick-up or Edit my.ini values”可以在右边窗口内对你的my.ini文件进行编辑 6)、选择“Save Modification”保存你的my.ini文件 7)、如果你想快速使用winmysqladmin(开机时自动运行),选择“Create ShortCut on Start Menu” 8)、测试: 进入DOS界面; 在d:\mysql\bin目录下运行mysql,进入mysql交互操作界面 输入show databases并回车,屏幕显示出当前已有的两个数据库mysql和test · 方法二:不使用winmysqladmin 1)、在DOS窗口下,进入d:/mysql/bin目录 2)、win9X下)运行: mysqld 在NT下运行: mysqld-nt --standalone 3)、此后,mysql在后台运行 4)、测试mysql:(在d:/mysql/bin目录下) a)、mysqlshow 正常时显示已有的两个数据库mysql和test b)、mysqlshow -u root mysql 正常时显示数据库mysql里的五个表: columns_priv db host tables_priv user c)、mysqladmin version status proc 显示版本号、状态、进程信息等 d)、mysql test 进入mysql操作界面,当前数据库为test 5)、mysql关闭方法: mysqladmin -u root shutdown 4、至此,MySQL已成功安装,接着可以熟悉MySQL的常用命令并创建自己的数据库了。 上篇讲了如何安装并测试MySQL,环境建好后就可以继续我们的学习了。本篇主要熟悉一写常用命令。 · 1、启动MySQL服务器 实际上上篇已讲到如何启动MySQL。两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行 d:mysqlbinmysqld · 2、进入mysql交互操作界面 在DOS方式下,运行: d:mysqlbinmysql 出现: mysql 的提示符,此时已进入mysql的交互操作方式。 如果出现 "ERROR 2003: Can´t connect to MySQL server on ´localhost´ (10061)“, 说明你的MySQL还没有启动。 · 3、退出MySQL操作界面 在mysql>提示符下输入quit可以随时退出交互操作界面: mysql> quit Bye 你也可以用control-D退出。 · 4、第一条命令 mysql> select version(),current_date(); +----------------+-----------------+ | version() | current_date() | +----------------+-----------------+ | 3.23.25a-debug | 2001-05-17 | +----------------+-----------------+ 1 row in set (0.01 sec) mysql> 此命令要求mysql服务器告诉你它的版本号和当前日期。尝试用不同大小写操作上述命令,看结果如何。 结果说明mysql命令的大

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你是我的导航

谢谢您的打赏,您的鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值