快捷搜索:
来自 网络数据库 2019-06-15 16:18 的文章
当前位置: 67677新澳门手机版 > 网络数据库 > 正文

NET学习笔记08MySQL基础知识

mysql数据库基础知识

mysql笔记

什么是数据库

数据库看名称就能够想到其意义,就是用来存款和储蓄数据的工具,用多个百分比形象的事例来比喻,就是Excel,一个Excel文件就足以当作是三个数据库。

一,补充

关系型数据库

尽管以行与列构成的二维数据表的格局,用来囤积数据的,并且将多张数据表存款和储蓄在三个单元中的存款和储蓄格局,就称为关系型数据库。

cd ;dos窗口查看文件夹,盘与盘之间无需cd

数据表

由行与列构成的二维结构的蕴藏数据的表格。

has a;生命周期,具备,本人的

记录

哪怕数据表中央银行,一暴行数据我们就叫做一条数据记录。

平常来讲,每条数据记录都有多个ID号,大家能够把那个id通晓成是excel中的行号,用来对每条记下进行区分与标志。

use e;使用,传进来的

主键

多数时候大家将id称为主键,主键那是指那张表的排列顺序的依赖。

and;和

字段

数量字段,正是数码表中的列。

每一个字段都必要钦命一个称谓,用来注明该列数据的效果,就叫作字段名。

is e;是

常用的数据库的门类

Mysql 质量大胆,能够防费应用。

MSSQL server 微软公司的数据库软件,平常用于搭配微软系统的编制程序语言。

Access是office的办公室套件之一。

Oracel 质量非强悍,也丰硕高昂。

byte ; 127——-128;127 1取返=-128;

设置与行使mysql

安装mysql的章程许多,大家采用phpstudy那一个软件来设置php mysql的运行景况。安装之后,我们就持有了mysql的服务。而且还应该有七款mysql客户端。

 

Mysql分为客户端与服务端。服务端仅仅用于对软件程序提供数据通讯,普通用户不能够直接看到当中的数量内容。

 

客户端用来将服务端的多少,以用户能够清楚的章程映今后其分界面上。

 

ip

phpMyAdmin

phpMyAdmin是最常用的mysql客户端,它是基于php语言的。

在桌面右下角的phpstudy图标上右击弹出菜单中选用phpMyAdmin就能够运营进入了。运营以后,需求输入用户与密码进行登入,私下认可的用户名密码都以root。

 

本机ip;127.0.0.1

新建数据库

1、 要钦赐数据库的名称。

2、 日常选取utf8_unicode_ci字符集,在唯有普通话的情景下,能够接纳gbk_chinese_ic或gb2312_chinese_ci 。

 

mysql --version;命令窗口询问mysql版本(管理员运营命令窗口)

新建数据表

1、 选中数据库之后,点击左侧的“新建数据表”,填写“数据表名”。

2、 钦定数据表的字段,也正是列。在钦定字段的进度中大家要对字段增多字段名、数据类型、数据长度、是不是是主键、是或不是自增。(许多情形下,主键是名称为id的整数类型,而且是自增的。)

3、 为字段内定这一列的数据类型。

二,mysql基础

自增auto_increment

自增字段中一般存放的是整数类型的多少,用于表示数据库中的记录的序号。

自增字段的值没有供给手动输入,在那之中的数码是自行发出的,每当向那表里面增添一条新记录的时候,自增字段会自动收取上一行字段值,然后加一,作为新记录的主键值。(主键绝对不会爆发再一次,就算上一条记下被去除了)。

1,数据库;

何以设置三个字段为自增

1、在创设表或在改造字段结构的时候,设置字段的数据类型为int,然后选中auto_increment上的勾。

2、当插入一条数据时,不要手动填入主键字段。

3、主键生成的数字相对不会再也,纵然记录被删除。

1,积累数据以及数据结构的厂库。(db);

何以设置主键

1、在创制表或在改造字段结构的时候,在主键字段的”索引”下拉菜单中挑选“primary”。(一张表只允许设置八个主键,平日它是int自增的。)

 

2,数据库是独立;

小练习:

1、 新建贰个成品product数据库

2、 在数据库中增加产品product表,并确立字段pId (主键)、pName(产品名称)、pModel(产品型号)、pPrice(产品价格)

3、 增添5条产品新闻

4、 在数据库中再加多一个出品入库表(saveInLib),并确立字段:sid(主键)、pName(产品名称)、saveInTime(入库时间)、saveInCount(入库数量)。

5、 增多5条产品入库记录。

 

2,数据库是用来治本,查询,积存数据的;

mySQL中的数据类型

在mySQL中每个字段,都不可能不旗帜分明它存放的多寡的品类,一旦钦定了品种,该字段(列)中的数据都不可能不符合那些类型的限定,不然就会挑起错误。

 

再就是字符等项目须求钦点内容的最大尺寸。

 

1,实体;表名,依据目的来划分

int整数类型

只好存放整数

2,属性;字段

varchar字符类型

能够积累任一字符,包含符号、数字、字母,不过她们都会被当成字符为处理。

3,数据库种类;关系型,非关系型,档次型,网状型

Date日期

用于存款和储蓄日期和时间

3,编码设置;

数值类型

TinyInt 十分小的卡尺头存款和储蓄格式,1字节(8位的二进制数),它的取值范围是:不带符号时0 ~ 255,带正负号时-128 ~ 127

SmallInt 小板寸,2字节,不带符号时0~65535,带正负号时-32768~32767

MediumInt 中等整数,3字节,不带符号时0~16777215,带正负号时-8388608 ~ 8388607

Int 规范整数,4字节,不带符号时0 ~ 4294967295 ,带正负号时-2147483648 ~ 2147483647

BigInt 大整数,8字节,不带符号时0~18446744073709551615

 

Float 单精度浮点数,4字节,最小值,正负1.175494351E-58(1.175494351*10-58)最大值,正负3.102823466E 38(3.102823466E*1038)

Double 双精度浮点数,8字节,最小值,正负2.2250738507贰零壹陆E-308,最大值:正负1.17976931348623157E 308。

 

Decimal 以字符串格局积累浮点数。它的取值范围不是定点的,取决于用户钦点的长短。

gbk;中国和东瀛斯拉维尼亚语言

数值类型的字段能够设置的参数:

gb1312;中文

unsigned属性

“整理”菜单中的unsigned选项,代表无符号,代表这一字段中的数值不能够为负数,因为无符号就是代表未有正负号。假若“整理”菜单留空,什么都不选的话,正是意味着有标记,可认为正数也足感觉负数。

utf8;大型编码;

unsigned zerofill属性

当数码的宽窄小于类型的最大开间时,则在数码前边自动填充0

4,暗中认可引擎;

auto_increment

自增

INNODB;默认的

默认à定义

以此选项代表,填充数据时只要该字段为空值时,所选择的暗中认可值。

数据表的引擎一般都要设成INNODB

字符串数据类型

字符类型能够积攒任何值,乃至是二进制格局的图像、声音、录制。

CHAR[M] 代表M字节的字符。

varChar 常用的字符存款和储蓄格式,使用时索要钦命最大内容长度。

5,常用的一对数据库

存储大容积的公文

TinyBlob ,blob,TinyText,text

前多少个是表示二进制字符串,后多个是象征非二进制字符串,都足以积累巨量的文件音讯。

MediumBlob,MediumText

LongBlob,LongText

sqlserver ,access是微软的数据库

枚举类型

ENUM / SET 类型

设置其暗许值为(‘值1’, ‘值2’, ‘值3’,…),由用户钦定七个可选值,字段中的值必须是中间之一,最四只可以有655三11个可选值。

 

oracle,mysql,java都是oracle公司的

日期时间档期的顺序

Date 1000-01-01 ~ 9999-12-31

TIME -838:59:59~838:59:59

DateTime 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59

TimeStmp 1966-01-01 00:00:00 到2037年的里边的某贰个整日

Year 存储1901~2155年的叁个寒暑。

 

dbz 是IMB公司的

小练习:

1、 成立一张职员和工人数据表,employee,包括字段:eId(标准整数,主键、自增)、姓名eName(varchar,50)、年龄eAge(tinyInt,无符号)、工号eNum(smallInt,不足的位数用0填充)、文凭(枚举:初级中学~硕士)、性别(枚举:男,女)、出生日期(DateTime)、基本薪水(Float,暗许:1300)、自己介绍text。然后输入五名职员和工人的新闻。

 

 

T-SQL语言基础之增加和删除改查

sybase 是sybase公司的;

SQL语句

是一门特意用于数据库操作的言语,SQL语句的语法不仅适用于mysql数据库,同期也适用于大概具有的主流数据库。当然区别集团出口的数据库在语法细节上如故稍微差异。

 

三,DDL;数据定义语句;设计语句

select语句

询问语句,特意用于在数码表中根据用户钦点的规范进行询问。

1,基本命令

轻便语法描述:

SELECT <字段1,字段2,字段3…..> FROM <数据表名> [WHERE 筛选标准]

内部字段部分代表你想要从那张数据表中询问哪些字段(列),要是要询问全数字段,能够 * 号表示。

示例:

SELECT pName FROM product

//从产品表中查询所有产品名称

SELECT pName,pPrice FROM product

//从产品表中查询所有产品名称和价格

SELECT * FROM product

//从产品表中查询中所有产品的字段

SELECT pName,pPrice-30 FROM product

//在查询时给所有产品减30元

SELECT pName as '产品名',pPrice as '价格' FROM product

//在查询时修改结果集中的字段名

SELECT 3.1415926 *12 *12

//用select语句来进行数学运算

 

1,登录;mysql -h localhost -uroot -p

where子句

概念二个询问条件,然后在询问进程中用这些规格来筛选符合条件的记录。

 

SELECT * FROM product WHERE pPrice >=1000

查询价格大于等于1000的产品

SELECT * FROM product WHERE pPrice <>3000

SELECT * FROM product WHERE pPrice !=3000

查询价格不等于3000的产品

SELECT * FROM product WHERE pName = '中兴z954'

 

查询产品名称是黑莓z954的成品音信(在mysql中双引号与单引号都意味着字符串,但是推荐应用单引号,因为大家以往要上学的mssql server 中字符串用单引号表示)

2,退出;exit

逻辑与and

SELECT * FROM product
WHERE pPrice <800 AND pId >6 AND pName ='Nokia v998'

 

3,查看当前时间日期;select now();

逻辑或or

SELECT * FROM product

WHERE pPrice <800 OR pId >6

 

4,当前几天期;select curdate();

逻辑非not

SELECT * FROM product

WHERE not pName = '中兴z954'

 

 

5,当前时光;select curtime();

insert插入数据

向钦点的数据表的钦定字段插入一条记下。

6,打字与印刷版本音讯;select version();

语法:

INSERT INTO 表名(字段1,字段2,字段3,……) values(值1,值2,值3,….)

个中,字段的岗位与值的岗位必须逐一对应。

7,查看当前用户;select user();

示例:

INSERT INTO userinfo(uName,uPhone,uIDCard)

VALUES('江小白','010-89562321','5001234567814541X')

 

向数据表中插入一条用户消息

 

INSERT INTO userinfo(uName) VALUES('张小强')

插入一条用户音信,可是唯有姓名,别的字段自动留空或使用暗中认可值(纵然中间某些字段设置为不容许为null,而并未有暗许值的话,就必须要给那些字段赋值了)。

 

INSERT INTO userinfo VALUES

(3,'王小虎','010-89562321','5001234567814541X')

 

能够省略字段名,但是具备的字段都必须遵从顺序来每家每户赋值。包括主键ID(要依据顺序来填写主键值)

 

一次性插入多条语句

insert into student(sName,sAge,sSex,sPhone)

values('小黑',20,'女','010-89562314'),

('小强',20,'男','020-89562314'),

('小红',20,'女','021-89562314'),

('小黄',20,'男','019-89562314'),

('小李',20,'女','022-89562314')

 

 

8,运营mysql后台服务(管理员运转命令窗口);

Update修改数据

依靠内定的尺码规定须要修改的行,然后修改钦点字段的数目。

net start mysql;

语法:

update 数据表名 set 字段1=值1,字段2=值2,……..WHERE 条件

即使where是三个可选参数,但是一般状态下都亟需写where条件,假若不写便是修改整张表的全数行。

9,关闭mysql后台服务(管理员运维命令窗口);

示例:

UPDATE userinfo SET uName = '江老怪' WHERE uid = 1

 

修改第1条记下的姓名字为江老怪

UPDATE userinfo SET uName = '江老怪'

 

修改全数行的用户名称叫江老怪

UPDATE userinfo

SET uName = '小二黑',uPhone='111111',uIDCard='11111111' WHERE uid = 3

 

 

net stop mysql;

delete删除

依附规则删除钦赐的笔录

2,操作库

语法:

delete from 表名 where 条件

就算where是一个可选参数,然而普通状态下都亟需写where条件,假使不写便是去除整张表的具有行。

1,查看数据库;show databases;

示例:

DELETE FROM userinfo WHERE uid = 2

 

 

2,创立数据库;create database 库名 字符集;

小练习:

1、 记念背诵增加和删除改查钦点的语法。

2、 手动新建三个数据库product,在在那之中新建数据表product,这一个表中的字段:pid(主键)、pName(产品名)、pModel(型号)、pIntro(简要介绍)、pFrom(产地)、pPrice(价格) 。

3、 用insert语句增多10条差异的制品数据

4、 查询

a) 查询全部产品数量

b) 查询全部产品的产品名和价格

c) 查询全体价格在两千之上的制品

d) 查询全部产品为卢萨卡并且价格超越3000的制品

e) 查询全体产地不是明斯克的出品

5、 将第5条记下的产品号修改为T一千

6、 删除全体价格小于5元的制品。

 

将第三题之后的sql语句复制到二个word文书档案中,然后COO检查组员,班长检查老总。

3、5、6每题20分。

第4题中的各样小题8分共40分

 

命令行与高端查询

3;删除数据库;drop database 库名;

Mysql命令行

1、 在phpstudy的右键菜单中,mysql工具 à mysql命令行

2、 弹出的下令框中提醒”enter password”,输入私下认可密码root

3、 假若看到”you mysql connection”就证实你登入成功了。

4、 在命令行中,每一条指令都必须以分行;截至,不然系统会感觉你那条指令还未能如愿,始终供给你继续输入。

 

3,修改数据库密码账户登入密码

查看数据库列表

show Databases

1,用SET PASSWORD命令

选取数据库use

set password for 用户名@localhost = password('新密码'); 

格式:

use 数据库名

选定钦赐数据库为当前默许被操作的数据库。

在行使操作数据表中的数目此前,必要求选定三个当下数据库。

 

2,用mysqladmin

陈列出当下数据库中的数据表

show tables

mysqladmin -u用户名 -p旧密码 password 新密码 

位列出多少表中的字段

格式:show columns from 表名

Describe 数据表名

 

3,用UPDATE直接编辑user表

数据库与数据操作

mysql> use mysql; 

成立三个新的数据库

命令格式:create database 数据库名

mysql> update user set password=password('123') where

在此时此刻数据库中开创数据表

注意,在开立在此之前务必接纳当前数据库。

格式:create table 表名(字段1 数据类型,字段2 数据类型,……)

示例:

create table stdInfo(

sName varchar(20),

sAge int,

sSex varchar(5)

);

 

user='root' and host='localhost'; 

创造包括自增主键的数据表

演示:创造客户表:

create table customers(

 id int not null auto_increment,

 name varchar(20) not null,

 age int not null,

 address varchar(100) not null default 'empty',

 primary key(id)

);

 

说明:

not null 代表该字段不允许出现空值,正是说当您利用insert语句插入数据记录的时候,必须向这几个字段赋值,不然数据操作将发出错误。

auto_increment 自增

Default 默认值

Primary key 钦点数据表的主键

mysql> flush privileges; 

剔除数据表

格式:drop table 数据表名

4,在忘记root密码的时候,能够这么

去除数据库

格式:drop database 数据库名

(1), 关闭正在周转的MySQL服务。 

退换表结构:扩大字段

拉长三个字段

alter table student add sScore float null;

 

其中:

add 代表扩充一列

Null 代表那些字段允许空值。

student 是数量表名

sScore 是新扩大的字段名,前边是数据类型。

(2), 打开DOS窗口,转到mysqlbin目录。 

更动表结构:删除字段

alter table student drop column sScore;

 

其中:

drop column 代表删除字段操作

sScore 要被删除的字段名

student 是表名

(3),输入mysqld --skip-grant-tables 回车。

重命名数据表

rename table student to sInfo;

 

注意:to后面是修改前的原表名,to前面是修改后的新表名。

--skip-grant-tables 的乐趣是开发银行MySQL服务的时候跳过权限表认证。 

更动表结构:加多自增主键

alter table product

 add pid int

 not null

 primary key

 auto_increment

 first;

 

其中

primary key 设置新字段为主键

first 将新字段放在其余字段的先头,处于第壹个人。

 

(4),再开三个DOS窗口(因为刚刚不胜DOS窗口已经无法动了),

小练习:

请同学把富有SQL都写到一个SQL文件中,按“班级-姓名(能够是拼音).SQL”的措施保存

某高校的学习者处理数据库中有学生表(T_STUDENT)、班级表(T_CLASS),表结构及积攒的数额如下表所示:

学生表(T_STUDENT):

STU_ID

(int, 主键,学号)

STU_NAME

(nvarchar(10),姓名)

STU_AGE

(int,年龄)

STU_CID

(int,外键,班级号)

1

张三

18

1

2

钱四

16

2

3

王玲

17

3

5

李飞

19

4

9

赵四

18

5

10

李可

20

6

11

张飞

18

7

12

周瑜

16

8

13

王亮

17

7

14

董庆

19

1

15

赵龙

18

2

16

李丽

20

3

班级表(T_CLASS):

CLS_ID

(int, 主键, 班级号)

CLS_JOB

(nvarchar(50), 专业名)

CLS_DEPART

(nvarchar(50), 系名)

CLS_DATE

(int, 入学年份)

1

软件

计算机

2013

2

微电子

计算机

2013

3

无机化学

化学

2014

4

高分子化学

化学

2012

5

统计数学

数学

2015

6

现代语言

中文

2016

7

国际贸易

经济

2013

8

国际金融

经济

2014

 

用 SQL 语言形成以下职能

  1. 建库、建表,须要增多主键
  2. 插入内定的数额
  3. 搜索装有年龄小于19岁的学习者学号、姓名、年龄。
  4. 学生张三转到化学系 111 班,请更新相关的表。
  5. 除去班级表的主键这一列。
  6. 将学员表改名称为T_STD
  7. 为班级表增添字段CLS_COUNT人数字段
  8. 为班级表增添主键。
  9. 剔除班级表

 

 

mysql_4_聚合函数

转到mysqlbin目录。 

mysql数据库的备份与还原

(5),输入mysql回车,就算成功,将应际而生MySQL指示符 >。 

备份

在phpmyAdmin中采取“导出”功用将数据表的布局与数码保存为二个.sql文件(保存格式选取SQL)

(6),连接权限数据库: use mysql; 。 

恢复

在phpmyAdmin中式点心击“导入”,选用.sql文件的途径(格式选择SQL),点击实践。

 

(7), 改密码:update user set password=password("123") where user="root";

mysql中的聚合函数

正是对点名字段中的一列数据进行总结和平运动算的函数。

(别忘了最后加分号) 。 

GROUP BY分组

在钦定字段司令员数据内容重复的记录,聚合为一组。剔除重复的值。

示例:

SELECT * FROM student GROUP BY sSex

SELECT sName FROM student GROUP BY sAge

 

(8), 刷新权力(必须步骤):flush privileges; 。 

COUNT 总括个数

用来总计(按原则)查询出聚合后的记录或询问的结果一共有稍许条。示例:

SELECT COUNT(*) FROM student //统计表中一共有多少条记录

SELECT COUNT(1) FROM student //同上,性能更强。

SELECT COUNT(1) FROM student WHERE sAge>17 //统计符合条件的记录总数

SELECT COUNT(1),sSex FROM student GROUP BY sSex

//将GROUP BY与COUNT两个函数结合起来使用,按性别进行分组统计。

 

(9), 退出 quit。 

AVG求平均值

格式:AVG(字段名)

对点名的字段中(一列中) 的数据值举行求平均值的运算。

SELECT AVG(sAge) FROM student

SELECT AVG(sScore) FROM student WHERE sAge<=18

SELECT AVG(sScore),sSex FROM student GROUP BY sSex

 

 

(10), 注销系统,再进来,使用用户名root和刚刚设置的新密码123记名。

GROUP_CONCAT分组连接

将一张表中的多行记录中的内定的字段值,连接成五个字符串。种种值时期以逗号进行分隔。常常用于获取聚合后的种种分组中玉茭的积极分子。

SELECT GROUP_CONCAT( sName ) FROM student

//连接所有学生的姓名

SELECT GROUP_CONCAT( sName ) FROM student WHERE sAge>18

//连接所有18岁以上的学生姓名

SELECT GROUP_CONCAT(sName),sSex FROM student GROUP BY sSex

//得到所有男生和女生的名单

 

 

四,DML;数据操作语句;增加和删除改

ORDER BY排序

遵循内定的字段的值的分寸的程序,来排列查询的结果。

SELECT * FROM student ORDER BY sScore

//通过成绩来排列学生。默认为升序(从小到大)

SELECT * FROM student ORDER BY sScore DESC

//通过成绩来排列学生。添加DESC就是降序(从大到小)

 

 

1,表的增加和删除改查

最大值最小值MAX()、MIN()

在询问结果中的钦点字段中找到最大的值或纤维的值。

SELECT MAX(sScore) FROM student

//得到成绩最高分数

SELECT MIN(sScore),sSex FROM student GROUP BY sSex

//分别得到男生和女生最低分

 

 

1,进入库;

求和sum()

在查询结果中对点名字段的值求和。

SELECT SUM(sSCore) FROM student

//全班总分

SELECT SUM(sSCore),sSex FROM student GROUP BY sSex

//查看男生总分和女生总分

 

 

use 库名称;

小练习:

1、用Create指令创设二个产品发售记录数据表,包蕴字段:产品名、出卖地区、发卖数据、发售金额。(10分)

2、倘使本公司发卖的产品唯有二种,出卖地区也唯有多少个。用insert语句插入十条产品出售记录。(产品与贩卖地区自然有再一次值。)(15分)

3、总计每个产品的发售总额(10分)

4、计算每一种产品的平分贩卖额。(10分)

5、计算每个产品的行销总量量。(10分)

6、在每个地方出卖的种种产品的名号,连接成三个以逗号分隔的字符串。(15分)

7、同临时间总结各类产品的最大贩卖额。(10分)

8、计算产品在每个区域的最低出售额。(10分)

9、获得总出售额。(10分)

 

 

 

 

 

 

 

mysql_尖端查询

2,创建表;

数码过滤通配符

通配符,正是指能够通用的杰出其余字符的暗记。

create table student(表结构 类型,表结构 类型);

%通配符

%代表私自个数的任一字符,它通常是用在select语句中与LIKE关键同盟使用的。

5,删除表;

示例:

SELECT * FROM student WHERE sName LIKE '王%'

 

探求全体姓王的上学的儿童

LIKE关键字在这里代表模糊查询,不是像=那样必须完全相配。

 

SELECT * FROM student WHERE sName LIKE '%五'

 

索求以“五”字最终的数据

 

SELECT * FROM student WHERE sName LIKE '%老%'

 

搜索中间含有“老”字的字符。

专注:就算数额的起来或最终为空,依旧得以合作到数码,因为%不但代表专断个数的私自字符,它一样也可以表示未有字符。

drop table 表名称

注意事项:

1、%不但代表专断个数的放肆字符,它也足以空字符。

2、数据尾巴部分的空格恐怕会干扰通配符的追寻,比方:现成数据’abc  ’,要是它最后有一个或七个空格的话,则

本文由67677新澳门手机版发布于网络数据库,转载请注明出处:NET学习笔记08MySQL基础知识

关键词: