mysql数据库

mysql的解释

1.为什么要使用数据库:永久化
1.1数据库是什么:存储数据的"仓库"; 本质也是一个文件
数据想要永久化(数据库,本质:一个文件)

2.数据存储在什么地方: 变量(内存,临时存在)、硬盘、U盘、网盘(文件)

3.数据库的作用:
3.1.存储大量的数据 ,访问和检索(管理数据 )
3.2. 保证数据的完整性(正确性)
3.3. 安全和共享
3.4. 数据可以进行组合(数据分析)

4.数据库存储的发展历史
4.1. 层次模型
4.2. 网状模型
4.3. 关系模型(重点)
4.4. 对象模型(非关系模型): mongodb

5.关系型数据库
为基本单位;表由行列组成。
表: 就存储相同实体(记录)的一个集合;
行:一个实体或一行记录
列: 属性,字段

关系型: 由实体和关系组成
1对1(1:1)
1对多(1:N)
多对多(N:N)

6. 数据库管理系统
数据库(DataBase ,简称:DB)
管理系统(Manage System, 简称MS)
关系型(Ralation: 关系)
关系型数据库管理系统(RDBMS)

SQL Server、oracle 、db2, mysql , access ,sybase等等
mysql、SQL Server、oracle

7.SQL是结构化查询语言(Structured Query Language)
数据定义语言(DDL) - Data Define Lanuage
数据查询语言(DQL) Query
数据操作语言(DML) Manage
数据控制语言(DCL): Control

数据库操作

一、数据库
1.1创建数据库:create database 数据库名称
命名规范:
(1)第一个字符必须是下列字符之一:
a-z 和 A-Z
下划线 (_)、at 符号 (@) 或者 #
(2)后续字符可以是
at符号(@)、美元符号 ($)、数字符号或下划线
标识符不能是所用RDBMS的保留字。
不允许嵌入空格或其它特殊字符
1.3删除数据库:drop database 数据库名称;
1.4使用数据库:use 数据库名称;

二、表
数据类型:
int
float
double
decimal
char
varchar
date
datetime

重点:数据完整性的分类

  1. 实体完整性(约束行)
    主键约束:PRIMARY KEY
    标识列:AUTO_INCREMENT
    唯一:UNIQUE

注:主键与唯一约束的区别
唯一约束,可以为null ,但是主键不能为Null

  1. 域完整性(约束列)
    非空约束:NOT NULL
    默认约束:DEFAULT '默认的值’
    check约束(长度,范围等等)
  2. 引用完整性
    外键约束:constraint foreign key(从表列名) references(主表 (主表列名))
    外键和外键约束

外键:就是在定义表时,约定的关系,不会强制它
外键约束:创建表时,约定的外键关系,sql会强制执行

从表的数据,必须在主表存在,否则报错
主表的数据删除,必须保存从表没有引用,否则报错

  1. 自定义完整性
    自己定义规则(存储过程,视图,触发器)

5.操作
5.1创建表:create table 表名;
eg:

CREATE TABLE student(
	id INT,
	s_name VARCHAR(20),
	s_age INT,
	s_sex CHAR(4),
	s_birthday DATE,
	s_time DATETIME,
	s_class VARCHAR(20)
);

5.2删除表:drop table 表名;
5.3复制表:
create table 表名 select * from 表名2; – 复制表的结构和数据
create table 表名 select * from 表名2 where 1=0; – 复制表的结构
注:外键不会被复制
5.4修改表
添加列
alter table 表名 add 列名 列的数据类型 列的约束
修改列
alter table 表名 change 旧列名 新列名 新的数据类型 新的约束
删除列
alter table 表名 drop 列名

DML(表的数据)

1.添加数据
单行数据:
全部列: insert into 表名 values(数据) ; //数据要求和表里的列一一对应
部分列: insert into 表名(列名) values (数据); //数据和列名一一对应

多行数据:
insert into 表名(列名) values (数据),(数据2),(数据3)…;
eg:

CREATE TABLE xs_shop(
	x_id INT AUTO_INCREMENT PRIMARY KEY,
	x_bh VARCHAR(50) NOT NULL,
	x_date DATE,
	x_number INT NOT NULL,
	x_jg DECIMAL(10,2) NOT NULL,
	x_zong DECIMAL(10,2) NOT NULL,
	x_yg VARCHAR(20) NOT NULL
);

添加多行数据

INSERT INTO xs_shop VALUES
	(NULL,'xs1001','2013-12-2',124,134.5,16678,'张三'),
	(NULL,'xs1002','2013-12-2',50,80,4000,'李四'),
	(NULL,'xs1003','2013-12-5',66,55,3630,'张二'),
	(NULL,'xs100','2013-11-20',10,134.5,1345,'张三')
);

2.修改数据
update 表名 set 列名= 新的值
update 表名 set 列名= 新的值 [where 条件] 
条件中,使用的关系表达式: and , or
mysql中不等于,支持!= 和 <>

3.删除数据
delete from 表名
delete from 表名 [where 表名]
truncate table 表名; – 删除所有名的数据
truncate 和delete 两者的区别:
truncate和delete都可以实现数据的删除; delete 删除时会日志(可以恢复),效率比较低,且不能重置自增列
truncate没有日志(不能恢复),效率高,且能重置自增列

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值