玖叶教程网

前端编程开发入门

数据库 MySQL单表 增删改

01.数据库介绍_什么是数据库:

1).字面解释:存储数据的仓库。它是一个软件,底层存储数据仍然是使用"文件系统"。只是它底层存储数据采用了"索引页"的方式,它类似于

字典的"目录",可以很快的在大量数据中快速的定位到我们要查询的数据。所以在需要存储大量数据的情况下,我们需要"数据库软件"来存储

数据。

02.数据库介绍_什么是数据库管理系统:

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件。

广义上讲:任何的基于数据库的信息管理系统都称为:DBMS。

狭义上讲:它也指MySQL内部的一个小软件,用于接收用户的请求,并查询数据。

03.数据库介绍_常见的数据库软件:

1).MYSQL:开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

2).Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

3).DB2:IBM公司的数据库产品,收费的。常应用在银行系统中.

4).SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

5).SyBase:已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

6).SQLite: 嵌入式的小型数据库,应用在手机端。

常用数据库:MYSQL,Oracle.

04.数据库介绍_数据库的内部逻辑结构:

数据库软件:

|--逻辑数据库

|--表

|--列(预先定义)

|--行(存储数据)

|--逻辑数据库

....

05.MySQL数据库_安装:

参考"安装文档"

06.MySQL数据库_登录MySQL数据库:

1).安装后要确保MySQL正在运行;

我的电脑(计算机)-->右键-->管理-->服务和应用程序-->服务-->MySQL,要确保"状态"是"正在运行"。

2).登录MySQL:

1).启动命令行:win键 + R -->启动"运行"对话框-->输入"cmd"(回车)

2).输入命令:

1)方式一(连接本机MySQL):C:\>mysql -uroot -p你的密码(回车)

2)方式二(连接网络MySQL):C:\>mysql --host=MYSQL的IP地址 --user=root --password=你的密码

例如:C:\>mysql --host=127.0.0.1 --user=root --password=123(回车)

07.MySQL数据库_SQL概述:

1).什么是SQL:结构化查询语言(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。它是操作数据库软件,

用于增删改查数据时所使用的专门的语言。各种数据库软件都要遵守这套规范,也都要支持这套语言。

普通话:所有数据库软件都支持的标准SQL语句。

方言:某种数据库软件内部提供了独有的操作数据的语句。

2).SQL语言的分类:

1).数据定义语言:DDL

用于对"逻辑数据库"和"表"以及"列"等元素进行操作的SQL语句。常用的语句:create(创建)、alter(修改)、drop(删除)

2).数据控制语言:DCL[不涉及]

用来定义数据库的访问权限和安全级别,及创建用户

3).数据操作语言:DML【重点掌握】

用于对"数据"进行添加(insert into)、修改(update)、删除(delete)操作的。

4).数据查询语言:DQL【重中之重】

用于对"数据"进行查询(select ... from ... where ...) 操作的。

3).SQL的通用语法:

1).SQL语句可以单行或多行书写,以分号结尾(在命令行状态下)

2).可使用空格和缩进来增强语句的可读性。

3).MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

例如:SELECT * FROM user。

08.MySQL数据库_DDL语句_数据库操作的相关语句:

1).创建数据库:

1).create database 数据库名;

2).create database 数据库名 character set 字符集;

2).查看当前数据库中的所有逻辑数据库:

show databases;

3).查看某个数据库的定义的信息:

show create database 数据库名;

4).删除数据库

drop database 数据库名称;

5).切换数据库

use 数据库名;

6).查看当前在哪个逻辑数据库下工作:

select database();

09.MySQL数据库_DDL语句_表操作的相关语句:

1).创建表:

create table 表名(

列名1 数据类型(长度)[约束],

列名2 数据类型(长度)[约束],

列名3 数据类型(长度)[约束],

...... ,

列名n 数据类型(长度)[约束]

)

例如:创建一个学员信息表:id,姓名,性别,年龄

create table student(

idint,

namevarchar(100),

sexchar(2),

ageint

);

2).查看数据库中的所有表:

show tables;

3).查看表结构:

desc 表名;

4).删除表:

drop table 表名;

5).修改表:

1).alter table 表名 add 列名 类型(长度) [约束];

作用:修改表添加列.

例如:

#1,为分类表添加一个新的字段为 分类描述 varchar(20)

ALTER TABLE category ADD `desc` VARCHAR(20)

2).alter table 表名 modify 列名 类型(长度) 约束;

作用:修改表修改列的类型长度及约束.

例如:

#2, 为分类表的描述字段进行修改,类型varchar(50) 添加约束 not null

ALTER TABLE category MODIFY `desc` VARCHAR(50) NOT NULL;

3).alter table 表名 change 旧列名 新列名 类型(长度) 约束;

作用:修改表修改列名.

例如:

#3, 为分类表的分类名称字段进行更换 更换为 description varchar(30)

ALTER TABLE category CHANGE `desc` description VARCHAR(30);

4).alter table 表名 drop 列名;

作用:修改表删除列.

例如:

#4, 删除分类表中description这列

ALTER TABLE category DROP description;

5).rename table 表名 to 新表名;

作用:修改表名

例如:

#5, 为分类表category 改名成 category2

RENAME TABLE category TO category2;

6).alter table 表名 character set 字符集(了解);

作用:修改表的字符集

例如:

#6, 为分类表 category 的编码表进行修改,修改成 gbk

ALTER TABLE category CHARACTER SET gbk;

10.MySQL数据库_DDL语句_关于数据类型【重点掌握】:

Java数据类型 MySQL的数据类型

------------------------------------------------------------

整数: 整数:

int int

小数:

float float

double double

decimal(m,d):m:指数字的总位数(包括小数部分),d:指小数部分

布尔:

boolean(true/false) int(1/0)

字符:

char char(1)

日期:

String datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59

Date

字符串:

String char/varchar

注:char和varchar在MySQL都代表"字符串"

1).char是"定长字符串":例如:设置字段为:char(5),表示:存储的数据最多为5个字符,如果不足5个字符,填充空字符。

存储:"abc"-->硬盘上-->"abc "

存储:"ab" -->硬盘上-->"ab "

存储:"abcedf" --> 硬盘上-->"abced"

2).varchar是"不定长字符串":例如:设置字段为:varchar(5),表示:存储的数据最多为5个字符,不足5个字符就存储实际的字符数,不填充空字符;

存储:"abc"-->硬盘上-->"abc"

存储:"ab" -->硬盘上-->"ab"

存储:"abcdef" -->硬盘上-->"abcde"

怎样选择:char的查询效率要高于varchar

1).对于所有记录的数据平均长度相同,或者长度相差不大的数据,可以优先选择使用:char

例如:性别、手机号码、银行卡号、身份证号....

2).对于所有记录的数据平均长度相差很大,可以选择使用:varchar--节省空间,但牺牲了一些查询效率

例如:地址、爱好、个人简介.....

大文本(超过65535个字符):

StringText

字符串的二进制:

byte[]Binary

二进制数据(视频、图片)

byte[]BLOB

11.MySQL数据库_DDL语句_关于数据类型的长度【重点掌握】:

1).char和varchar的长度:

例如:char(5),varchar(5)

这个长度5,都是指的最多5个字符(英文或者中文字符)。

2).整数的长度:要结合zerofill命令一起使用

例如:int(4) ZEROFILL

表示:最少的可见数字的位数是4位,不足4位前面填充0,如果多于4位就存储实际的数字。

3).浮点数的长度:

float(m,d)

double(m,d)

decimal(m,d)

m:表示数字的总长度(包括小数部分)

d:表示小数部分的长度。

12.MySQL数据库_DML语句数据操作语言【重点掌握--今天必须要熟练掌握】:

注意:命令行临时更改数据库的编码方式(只对当前的命令行窗口有效):

set names gbk;

1).添加数据:insert into

A).insert into 表名 values(值1,值2,...,值n);

例如:

insert into student values(1,'刘德华','男',20);

说明:

1)."值列表"中"值"的数量必须和表中实际的"字段数量"要匹配;

2).不填的字段可以使用:NULL(状态)填充。

3).对于"字符串类型"的值,必须使用一对"单引号"或者一对"双引号"括起来,

对于"数值"的值,可以不用单引号或者双引号括起来。

B).insert into 表名(字段1,字段2,....,字段n) values(值1,值2,...,值n);

例如:

insert into student(id,name) values(4,'周星星');

说明:

1)."字段列表"中出现的"字段"可以是表中的部分字段。

2)."字段列表"中出现的"字段"可以不按照表中字段的定义顺序出现。

3)."值列表"中的值的数量、顺序、数据类型和前面"字段列表"中的"字段"的数量、顺序、数据类型要一致;

怎么选择:

1).如果要添加全部或者大部分字段的值,使用第一种,少部分列填充null即可。

2).如果要添加少部分字段的值,使用第二种。其它大部分字段都填充null。

2).修改数据:update 表名 set 字段1 = 新值 , 字段2 = 新值 , ... , 字段n = 新值 where 条件

例如:修改"刘德华"的年龄为20:

update student set age = 20 where name = '刘德华';

修改所有"男"明星的年龄为30

update student set age = 30 where sex = '男';

修改id= 1的记录的name = "周润发' , age = 35,sex = '男'

update student set name = '周润发' , age = 35 , sex = '男' where id = 1;

3).删除数据:delete from 表名 where 条件;

例如:删除"刘亦菲"

delete from student where name = '刘亦菲';

删除所有的男明星

delete from student where sex = '男';

4).查询

13.MySQL数据库_约束:

1).什么是约束:"约束"是MySQL中一个"独立的管理对象",一个"约束"描述了一个表中某列的数据的一些规则要求,并且要求"数据库软件"为我们监控这些数据,如果有违反规则的数据试图进入数据库,数据库软件将会为我们拦截这种数据。这样我们可以保证数据的安全性。

2).都有哪些约束:

1).主键约束:

1).什么是主键:在表中作为"唯一标识一行数据的字段",这种字段就叫:主键。

主键字段的值的特点:不能重复,非空。

建议:

1).任何表都要包含一个主键字段;

2).这个主键字段不能有任何"业务意义";因为只要有业务意义,就可能会被更改,更改时如果这个值被其它表引用,那将会是十分麻烦的事情。

2).一个表只能有一个"主键";

但一个主键可以由"一个字段[常用]"或者"多个字段(复合主键、联合主键)"组成;

一个字段做主键:

id(主键)nameage

1刘亦菲20

2柳岩18

3周星星22

多个字段做一个联合主键:

name(主键)age(主键)sex

张三20男

李四20男

张三22男

张三20女//不能添加

3).定义主键约束:

方式一:

create table student(

id int primary key,//主键约束--唯一、非空

name varchar(100),

age int,

sex char(2)

)

4).删除主键约束:

alter table 表名 drop primary key;

2).自动增长(MYSQL特有的):

1).什么是自动增长:对于主键字段,我们经常使用int类型,如果我们自己维护这个值,长时间下来会非常困难。

所以,MySQL提供了一种机制:自动增长。它可以从某个基数开始,每填一条记录会自动增长1,我们就可以直接使用这个值。

2).设置自动增长:

方式一:

create table student(

id int primary key auto_increment,//主键,自动增长

name varchar(100)

)

添加时:

insert into student values(null,'柳岩',22);

3).自动增长列只能应用在"数值类型",不能应用在"字符串"类型上。

4).自动增长不是必须用在"主键字段"上,但一般常用在"主键字段"上。一个表中只能有一个自动增长字段。

5).删除自动在增长:

alter table 表名 modify 列名 数据类型(长度) [后面不出现auto_increment即可]

3).非空约束:

1).可以约束某个字段的值:不接受NULL(状态)

2).设置非空约束:

方式一:

create table student(

id int primary key auto_increment,

name varchar(100) not null

)

如果再添加数据:

insert into student(null,null);//报错:第二个字段不能为null

insert into student(null,'');//OK的,添加是"空字符串"

3).一个表中,可以同时有多个字段设置"非空约束"。

4).删除非空约束:

alter table 表名 modify 列名 数据类型(长度) ;

4).唯一约束:

1).可以约束某个字段的值:唯一,不重复(但允许有NULL状态,而且允许有多个NULL状态)

2).设置唯一约束:

方式一:

create table student(

id int primary key auto_increment,

name varchar(100) unique //唯一约束

)

添加时:

第一条记录:

insert into student values(null,'柳岩');

第二条记录:

insert into student values(null,'柳岩');//报错

3).删除唯一约束:

ALTER TABLE 表名 DROP INDEX 字段名;

例如:

alter table student drop index name;

5).外键约束:

14.MySQL数据库_重置密码:

步骤:

1).停止mysql服务器 运行输入services.msc 停止mysql服务

2).在cmd下,输入mysqld --console --skip-grant-tables 启动服务器,出现一下页面,不要关闭该窗口

3).新打开cmd,输入mysql -uroot 不需要密码

4).修改新密码:

use mysql;

update user set password=password('新密码') WHERE User='root';

5).关闭两个cmd窗口

6).重新启动MYSQL服务,并在cmd中登录;

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言