MySql数据库操作
来源:互联网 发布:手机注册淘宝店铺 编辑:程序博客网 时间:2024/06/11 01:10
数据仓库
就与我们之前学过的纯文本,properties,XML这些技术一样.用来保存数据.并提供对数据进行增删改查的操作. 我们以后做项目时,项目中的数据都是保存在数据库中的.
和文本存数据的区别是数据库中存放的是格式化、有结构的数据。
关系数据库,是建立在关系模型基础上的数据库;现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。
标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
为什么要用数据库, 数据库的特点?
1、实现数据共享
2、减少数据的冗余度
3、数据实现集中控制
4、数据一致性,完整性和可维护性,以确保数据的安全性和可靠性(数据库的事务)
5、故障恢复
常用数据库
1、MySQL:MySQL是最受欢迎的开源SQL数据库管理系统,MySQL是一个关系数据库管理系统。MySQL是开源的。
2、SQL Server:SQL Server是由微软开发的数据库管理系统,它只能在Windows上运行.
3、Oracle:提起数据库,第一个想到的公司,一般都会是Oracle(甲骨文)。该公司成立于1977年,最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。Oracle数据库成为世界上使用最广泛的关系数据系统之一。
4、DB2:IBM开发的,也是收费数据库。
power designer 数据库设计软件,数据库建模工具。
.MSI就是microsoft installer的简写,是微软格式的安装包。一般是程序的安装软件。
mysql.exe的路径配置到环境变量里面。 如果出现不能识别。
MySql数据库的安装
安装位置有两个.
1)数据库服务位置: MySQL Server;启动运行在内存中的应用程序,由服务帮你操作数据库。
2)数据库数据文件位置: Server data files; 存储数据。(首先选择的)
数据库服务配置注意事项:
1)数据库对连接人数有限制。
2)记住数据库应用程序的端口号3306、tomcat的端口号是8080
3)选择MySql默认的字符集:默认的编码方式;自定义选择utf8。
4)mysql数据库,管理员名称为root。
5)是否允许远程计算机以root方式连接到你的数据库?
mysql数据库卸载: 1、运行卸载程序 2、删除目录
忘记root密码;
忘记了配置mysql的环境变量需要手动配置(新版数据库不需要手动配置)。
数据库是由两部分构成的:数据库服务和库文件。通过数据库服务操作库文件。
DDL 数据库定义语言Data Definition Language || create alter drop (操作数据结构的语句)
DCL 数据库控制语言Data Control Language || grant rollback commit.
DML 数据库操纵语言Data Manipulation Language || insert update delete select;对数据库的增删改查。
DQL 数据库查询语言 Data Query Language || select (输入DML)
Mysql中的语法:
1)sql中的注释 -- 表示注释一行
2)sql不区分大小写吗? 语句不区分大小写(关键字). 数据区分大小写.
3)sql语句的结束.使用";"表示sql语句的结束. 分号
4)命名法: 下划线命名法
连接数据库服务的命令:
mysql -u root -p -u表示用户 -p表示密码 哪个用户连接到数据库?
根据提示输入密码, 即可建立连接.
数据文件目录:
1)可以建立多个数据库(通常情况下一定会建立多个数据库);
2)每一个数据库中可能包含多张数据表;数据以表的形式进行保存。
3)表是存储数据的载体,所有的数据都是存储在表中的。
DDL 数据库定义语言(库的操作)
1.创建一个库
create database库名称[characterset码表名称collate字符校对集名称];
create database day15;
1)看到Query OK, 1 row affected (0.00 sec)表示执行成功.
2)sql语句语法:结尾应使用";"号.
3)字符校对集:决定数据排序的。
2.显示mysql中都有哪些库了.
show databases; 有s一定要注意。
可以看到除了自己创建的库之外,还有一些其他库。其他库(除了test)不要乱动。因为是保存mysql的配置信息,账户信息等等。
test库: 自动创建用于测试的。
3.删除一个数据
drop database 数据库名称;
drop database day15;
4.修改数据库码表
alter database 数据库名称 character set 数据库码表;
alter database day15 character set utf8;
5.当前要使用的库(重要) 要必指定当前操作的库是哪个数据库?(没有s,这是道测试题)
use 库名
use day15; 出现Database changed,说明数据库切换完成.
6.查看当前选择的数据库(或者说是查看当前正在操作的数据库)
select database(); 只会显示一个数据库
7.显示创建某个数据库的语句.
show create database 数据库名称;
show create database day15;
| day15 | CREATE DATABASE `day15` /*!40100 DEFAULT CHARACTER SET utf8 */ |
图形化界面工具介绍:SQLyog的使用注意事项:
1)SQLyog-11.2.5-0.x64.reg注册表文件,破解SQLyog使用的;安装SQLyog前,首先运行.reg即可。
2)新建连接,如果不写数据库名称,可以操作很多数据库。推荐不填写。如果要连接到别人电脑上的数据库,只需要输入别人的ip地址即可。
3)可以进行点击测试连接,测试连接是否成功。
4)通过图形化界面创建数据库,直接右键单击即可。快捷键 Ctrl+D。你所有的操作都会转化成sql语句传递给mysql服务执行。语句的显示在“历史记录”面板里面。
5)F5创建对象浏览器,刷新数据库。
6)改变表 相当于desc table表名;
数据库中的数据类型:varchar最好指定长度; 整型一般不指定.
知道在什么情况下应该使用什么类型的数据?
一、数字型
整型
INT (常用) 4字节 int
BIGINT 8字节 long
浮点型
FLOAT 单精度4字节 float
DOUBLE 双精度 8字节 double
DECIMAL 没有精度损失
DOUBLE 和 DECIMAL 区别?
DOUBLE类型在运算时会有精度的缺失。
DECIMAL 就是解决精度缺失问题的。(底层使用字符串来保存数字)
单纯想表示小数属性时,使用double。
需要频繁参与运算的小数,使用decimal。
二、字符串类型
注意: 字符串类型要使用单引号包裹.
1)短字符串类型
CHAR/VARCHAR (最大长度255字节)问题:char和varchar有什么区别?
char定长字符串. varchar表示变长字符串.
同时指定长度为10。当存储abc
char => 'abc '
varchar => 'abc' 开发中varchar用的最多。char只在表示固定长度的枚举中使用。例如 :性别(用01,02表示)
2)长字符串类型
TEXT/CLOB 保存文本(字符流) -->当要保存的内容超过255字节时使用. java中的writer字符
BLOB 保存字节(字节流) -->开发中用不到 java中的stream字节
区别:text:只能存储字符数据. BLOB:可以存储字符和多媒体信息(图片 声音 图像)。
三、日期和时间类型
date 只记录日期 2015-01-14
time 只记录时间 11:36:25
year 只记录年 2015
datetime 又记录日期 又记录 时间 2015-01-14 11:36:25
timestamp 同上 2015-01-14 11:36:25
问题: datatime 和timestamp区别?
这两种类型记录的数据是一模一样.区别在于插入的时候,如果插入datatime类型时,没有传值,那么该类型默认值就是null;如果插入timestamp类型时,没有 传值,那么该类型默认值就是当前时间;默认值不同。
与创建表相关的语句(DDL) (记住) 都是些固定的东西 用的多了就好了!
Create table table_name
(
field1 datatype 约束/主键约束auto_increment,
field2 datatype 约束,
field3 datatype 约束
)character set 字符集 collate校对规则
一定要记住是小括号,以分号结尾,中间以逗号分隔。
1.创建表
create table t_user(
name varchar(10),
password varchar(20),
age int,
birthday datetime,
hiredate timestamp 入职日期;
);
2.查看当前库中有哪些表show tables;
3.查看表的结构 desc表名; desc t_user; description
4.删除表 drop table表名; drop table t_user;
5.添加一列 alter table表名add 列名 类型;alter table t_user add photo blob;
6.修改列的类型 alter table表名modify 列名 类型;
alter table t_user modify photo varchar(20);
7.修改列的名称
alter table 表名 change 旧列名 新列名 数据类型;
将 photo这一列 改名为image alter table t_user change photo image varchar(20);
8.删除某列 alter table表名drop 列名; alter table t_user drop image;
9.修改表的名称 rename table 旧表名 to 新名; rename table t_user to user;
列的约束(约束主要分三种) (规范用户操作数据的)(单表三大约束 试题)
保证数据的完整性和规范性.
1.非空约束(not null) 指定非空约束的列,在插入记录时 必须包含值.
2.唯一约束(unique) 该列的内容在表中.值是唯一的,不能重复.
3.主键约束(primary key) 当想要把某一列的值,作为该列的唯一标示符时,可以指定主键约束(包含 非空约束和唯一约束). 一个表中只能指定一个主键约束列.
主键约束 , 可以理解为 非空+唯一(不能重复).注意: 并且一张表中只能有一个主键约束.
约束体现数据库的完整性. 例如:创建带有约束的表
create table t_user2( id int primary key auto_increment,-- 员工编号 主键自动增长 name varchar(10) not null,-- 员工姓名 loginname varchar(10) not null unique, -- 登陆名称 password varchar(20) not null,-- 密码 age int not null,-- 年龄 birthday datetime not null,-- 生日 hiredate timestamp not null-- 入职日期);
主键自动增长
注意:
1.前提某个表的主键是数字. 我们可以将该主键设置为自增.
2.使用主键自增可能会造成主键的断层。
3.mysql,sqlserver这两个数据库具有该功能.
4.主键自增只能给主键约束的列加。
自增就是:每次插入记录时不需要指定值.该字段自己维护自己的值.维护方式就是每次加1;
语法:
create table t_user( id int primary key auto_increment, password varchar(30) not null, ageint not null, birthday datetime not null, hiredate timestamp not null, number int unique);
练习:创建修改表
CREATE TABLE employee ( id INT(10), NAME VARCHAR(10), gender VARCHAR(10), birthday DATETIME, entry_date TIMESTAMP, job VARCHAR(5), salary DOUBLE(5,3), RESUME TEXT);
1在上面员工表的基础上增加一个image列。
2修改job列,使其长度为60。
3删除gender列。
4表名改为user。
5修改表的字符集为utf8
6列名name修改为username。
- mysql 数据库操作类
- mysql数据库操作
- mysql的数据库操作
- MYSQL 数据库操作类
- Mysql数据库操作新手入门
- mysql数据库操作
- Mysql数据库简单操作
- Perl操作Mysql数据库
- mysql数据库操作
- PHP 操作mysql数据库
- MySql数据库操作类
- mysql数据库操作实战
- MySQL数据库操作实战
- Python操作Mysql数据库
- MySql数据库基本操作
- mysql数据库操作命令
- mysql数据库操作
- mysql主从数据库操作
- ServletConfig类、Servlet读取初始化参数的几种方式
- 关于全概率和贝叶斯公式的使用场景说明
- VIM中文乱码原理详解及终极解决方案[经典]
- Java方法继承、方法重载、方法覆盖小总结
- Matlab plotmatrix 子坐标轴控制
- MySql数据库操作
- 图像处理中的数学原理详解(已发布的部分链接整理)
- C语言实现栈
- 【Unity Shader】第二节 为上一节课的shader增加属性
- Slider
- servlet初始
- http://blog.csdn.net/singwhatiwanna/article/details/42343847
- 自定义进度弧形条
- 2016 Multi-University Training Contest 1 1002 hdu 5724 博弈