初识数据库

一、认识数据库

关系型数据库:MySQL数据库、Oracle、SQL Server数据库等。

非关系型数据库:MongoDB、Redis等。

其中MySQL数据库是现在应用非常广泛的的数据库:

主要优势如下:

  • 运行速度快
  • 使用成本低
  • 容易使用,复杂程度较低
  • 可移植性强
  • 适用于更多用户,免费开源(一般适用于大多数中小公司)

数据库管理系统和数据库系统,是两个不同的概念!

数据库管理系统(DataBase  Management System,  DBMS )是一种软件,由一个互相关联的数据集合和一组访问数据的程序构成,通常我们都叫数据库管理系统为数据库!

主要功能是维护数据库。

数据库系统(DataBase System,DBS)是一个实际可以运行的系统,可以对系统提供的数据进行存储,维护和应用!

数据冗余和数据完整性:

在数据库系统中,数据重复就是数据冗余。

数据完整性就是指数据库中数据的准确性。

数据库中的主键和外键:

主键(primary key):在数据库中,有这样一列,可以用来唯一标识表中的每一行,用于强制表的实体完整性,这样的列就是表的主键!

如果两列或者多列组合起来唯一标识表中的每一行,那么这个主键就叫做复合主键!!!

外键(Foreign key):是用来引用主表中的数据,是相对于主键而言的。外键用来强制引用完整性,一个表里面可以有多个外键。

二、使用数据库

1.使用命令检查数据库是否启动:

可以在DOS窗口输入 net start mysql启动数据库服务,或者输入 net  stop mysql停止MySQL服务!

2.连接数据库:

mysql  -h服务器主机地址 -u用户名 -p密码

注意:如果是在本机操作,不用写-h.....-p和密码之间没有空格!!!

3.查看当前安装的MySql版本信息和连接用户名:

SELECT  VERSION(),USER();

其中VERSION()返回的是版本号:如 5.5.20 , USER()返回的是连接数据库的用户名:如 root@localhost.

4.SQL:全称是结构化查询语言(Structured Query Language),也是关系数据库的标准语言!

5.SQL的组成:根据功能划分,SQL语言主要由以下几个部分组成。

(一)DML (数据操作语言,又叫数据操纵语言):用来插入,修改,删除数据库中的数据,如INSERT ,UPDATE,DELETE等。

(二)DDL (数据定义语言):用来建立数据库,数据库对象,定义数据表结构等。大部分是以CREATE 开头的命令,如CREATE TABLE ,CREATE  VIEW 以及DROP TABLE等。

(三)DQL(数据查询语言):用来对数据的查询,如SELECTdent

(四)DCL  (数据控制语言):用来控制数据库组件的存取许可,存取权限等。如GRANT ,REVOKE,COMMIT等。

6.数据库中的运算符:

(一)算术运算符

运算符说明
+加号运算,求两个数或表达式的和
-减号运算,求两个数或表达式的差
*乘号运算,求两个数或表达式的积
/除号运算,求两个数或表达式的商
%取模运算,求两个数或表达式的余数

(二)赋值运算符

"  =  ” 表示把一个数或者变量赋值给另一个变量。

(三)比较运算符

运算符说明
=等于。如 age=20
>大于。如 price>9

<

小于
<>不等于
>=大于等于
<=小于等于
!=不等于

注意:比较运算符中的计算结果是布尔类型,返回值是TRUE或者FALSE

(四)逻辑运算符

运算符说明
AND(&&)并且
OR(||)或者
NOT(!)非,取反,优先级最高

三、MySQL 数据库的基本操作:

1.对数据库的基本

create database 数据库名;   #创建数据库

注意:在Windows系统下,默认是不区分大小写的!分号代表一行结束,一般都加上。

show  databases;            #查看所有的数据库

use 数据库;                #切换数据库

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

2.对数据表的基本操作

(一)数据类型(常用的)

数据类型字节数取值范围
TINYINT1

有符号:-2的7次方~2的7次方

无符号:0~2的8次方-1

INT4有符号值:-2的31次方~2的31次方-1
DOUBLE8 
DECIMAL[(M),D]M+2字节

M:总位数

D:小数位精度位数

 

注意:有符号的可以存正数,负数,无符号的只能存正数!

(二)字符串型

数据类型字节

说明

 

CHAR【M】M字节

固定长度

M为0~255的整数

VARCHAR[M]可变长度

可变长度的字符串

M为0~65535的整数

TINYTEXT0~255微型文本串
TEXT0~65535长文本

(三)日期类型

数据类型格式取值范围
DATEYYYY-MM-DD1000-01-01~9999-12-31
DATETIMEYY-MM-DD hh:mm:ss1000-01-01 00:00:00 ~9999-12-31 23:59:59
TIMEhh:mm:ss 
TIMESTAMPYYYYMMDDHHMMSS1970年某时刻~2038年某时刻,精度为1s
YEARYYYY格式的年份1901~2155

3.创建表

#语法如下:
create table [if not exists] 表名(
    字段名  数据类型 [字段属性] [约束] [索引] [注释],

)[表类型][表字符集][注释];

#注意:[]里面的可写可不写,根据实际需求去写就好!

常用的字段属性约束

 

字段属性约束名关键字说明
非空约束NOT NULL不允许为空NULL
默认约束DEFAULT 

默认值设置

格式为:DEFAULT '男'

或者 DEFAULT 1

唯一约束UNIQUE KEY 表示字段的值是唯一的,允许为空,但只能有一个为空
主键约束PRIMARY KEY设置该字段为表的主键,可以作为该表的唯一的标识
外键约束FOREIGN KEY

用于建立两表之间的关系,需要指定那个表引用哪个字段。

注意:InnoDB引擎:支持外键,MyISAM不支持,外键关联的表要求都是InnoDB的表。

自动增长AUTO_INCREMENT

(1)设置该列为自增字段,默认为每条自增1

(2)  通常用来设置主键,而且是整数类型

(3)  可设置初始值和步长

   

补充:设置步长和自增

#设置初始值
auto_increment=5;

#设置步长
auto_increment_increment=3;

#设置步长起点偏移
auto_increment_offset=1;

4.设置主键

#创建表
create table student(
    `studentNo` int(4) primary key, #设置主键,``区别保留字

);


#多字段联合主键
create  table student(
    id int(4),
    name varchar(50),
    primary key(id,name)    #设置联合主键
);

5.查看表和删除表

#查看表

show tables;

#查看表的定义

desc 表名;

#删除表
drop table 表名;

6.修改表

#1.修改表名
alter  table 旧表名 rename 新表名;

#2.添加字段
alter table 表名 add 字段名 数据类型 [属性];

#3.修改字段
alter table 表名  change 原字段名 新字段名  数据类型 [属性];

#4.删除字段
alter table 表名  drop  字段名;

#5.添加主键约束
alter  table  表名 add  constarint 主键名 primary key 表名 (主键字段);


#6.添加外键约束:
alter  table 表名  add  constarint 外键名 foreign key (外键字段) 
references 关联表名(关联字段);

#注意:添加外键约束时,外键表在前,主键表在后!主键是被引用,外键是引用主键!
#删除时要先删除子表,再删除主表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值