MySQL中的一些概念以及SQL常用语句
目录
一、数据库概述
1.数据库的概念
数据库,简而言之就是存储数据的仓库,可以按照一定的数据结构存储管理大量的数据及数据与数据之间的关系,它本质上是一种信息管理系统。
数据库根据存储采用的数据结构的不同可以分为许多种,其中常见的有层次式数据库、网络式数据库、关系型数据库。其中关系型数据库占据着市场的主流。
2.关系型数据库
关系型数据库是建立在关系模型基础上的数据库。这种定义听起来十分抽象,这里我们不深入讨论什么叫做“关系模型”--大学计算机专业专门有一门课叫“离散数学”专门讨论过关系模型 --,只是简单的表述为利用表来存储数据,用表和表之间的关系保存数据之间的关系的数据库称为关系型数据库,这个定义不太严谨,但是更好理解。
3.常见的关系型数据库
商业数据库:
Oracle -- 甲骨文公司开发,市场占有率第一
SQLServer -- 微软公司开发,.Net技术中常用
DB2 -- IBM公司开发
Sybase -- Sybase公司开发
开源数据库:
MySql -- 瑞典MySql AB研发,非常受欢迎,已经被Oracle收购
SQLite -- 小型轻量级开源关系型数据库,常用作嵌入式设备数据库
二、MySql常见概念
1.数据库服务器
指的就是一个数据库管理程序,这个程序可以管理多个数据库。
具体来看就是在系统中运行的mysql的服务。
该服务器根据配置监听当前机器的指定端口(默认3306)等待客户端的连接访问。
2.数据库客户端
用来连接数据库服务器进行数据库操作的程序称之为数据库客户端程序,简称数据库客户端。
mysql自带了客户端程序,即bin/mysql.exe,可以通过该程序连接数据库服务器。
3.数据库
所谓的数据库就是在数据库服务器中创建的以一系列的表的形式存储数据的仓库。
一个数据库服务器中可以创建多个数据库。
多个数据库之间是互相隔离的。
通常一个项目对应一个数据库。
每个项目各自创建和使用各自的数据库,从而可以实现多个项目在一个数据库服务器中互不干扰的工作。
4.表
数据库中以表来存储数据。
一个数据库中可以创建多个表。
通常一个javabean类对应一个表。
5.表记录
表中一条数据就是一个表记录。
一个表中可以存储多条表记录。
通常一个javabean对象对应一个表记录。
三、SQL语言
1、操作数据库
(1)创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name ;
#IF NOT EXISTS:
#在创建前判断是否存在,如果不存在则创建,存在则不创建也不报错
#案例
#创建一个名称为mydb1的数据库。
CREATE DATABASE mydb1;
(2)查看数据库
#显示所有数据库
show databases;
#显示数据库创建语句
show create database db_name;
(3)删除数据库
DROP DATABASE [IF EXISTS] db_name;
# IF EXISTS:
#在删除前判断是否存在,如果存在则删除,如果不存在则不删除也不报错
#案例
#删除前面创建的mydb1数据库
DROP DATABASE mydb1;
(4)选择数据库
USE db_name;
2、操作表
(1)创建表
CREATE TABLE table_name
(
field1 datatype [cons],
field2 datatype [cons],
field3 datatype [cons]
)
#field:指定列名
#datatype:指定列类型
#cons:约束条件
#案例
create table employee(
id int,
name varchar(20),
gender char(1),
birthday date,
entry_date date,
job varchar(20),
salary double,
resume text
);
create table employee2(
id int primary key auto_increment,
name varchar(20) unique,
gender char(1) not null,
birthday date,
entry_date date,
job varchar(20),
salary double,
resume text
);
(2)查看表
#查看指定表
SHOW TABLES;
#查看指定表结构
DESC tab_name;
#查看指定表的建表语句
SHOW CREATE TABLE tab_name;
#案例
#列出mydb2数据库中所有的表
use mydb2;
show tables;
#查看employee表的表结构
desc employee;
#查看employee表的建表语句
show create table employee;
(3)修改表
#增加列 add
ALTER TABLE tab_name ADD (column datatype [DEFAULT expr][, column datatype]...);
#案例
#在上面员工表的基础上增加一个image列。
alter table employee add (image blob);
#修改列 modify
ALTER TABLE tab_name MODIFY (column datatype [DEFAULT expr][,