数据库概述:
数据库(DataBase)为了方便数据的存储和管理,它将数据按照特定的规则存储在磁盘上,就是一个存储数据的仓库。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。
数据库的相关概念
DB:数据库(DataBase) 存储数据的容器,它保存了一系列有组织的数据。
DBMS:数据库管理系统(DataBase Management System) 又称为数据库软件或数据库产品,用于创建或管理DB。
SQL:结构化查询语言(Structure Query Language) 用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据 库软件通用的语言。
数据库分为:
关系型数据库
关系型数据库管理系统称为RDBMS,R指Relation
Oracle:功能强大,收费.
MySQL 快捷、可靠 开源、免费
SQL Server(微软): 只能安装在Windows操作系统
DB2 (IBM):适合处理海量数据,收费.
非关系型数据库 MongdoDB Redis
Mysql数据库 :
查看数据库版本 select version();(mysql命令)
MySQL的常用命令
查看当前所有的数据库:show databases;
选择指定的库:use 库名
查看当前的所有表:show tables;
查看其他库的所有表:show tables from 库名;
MySQL语法规范:
1.不区分大小写,建议关键字大写,表名、列名小写
2.每次执行时需要提前选定;
如何设置注释
●单行注释:#注释文字
●单行注释:–(空格)注释文字
●多行注释:/* 注释文字 */
SQL语言
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.
SQL优点:不是某个特定数据库供应商专有的语是言,几乎所有DBMS都支持SQL简单易学实际上强有力的语言,灵活使用可以进行非常复杂和高级的数据库操作
数据(结构)定义语言DDL(Data Definition Language),是用于创建和修改数据库表结构的语言,常用的语句:create ,alter,drop,rename
对于初识数据库我们该如何使用数据库的SQL语言呢?
语法与举例如下:
– 删除数据库
DROP DATABASE school;
– 创建新的数据库
CREATE DATABASE school_db CHARSET utf-8;
– 判断数据库是否存在不存在直接创建
CREATE DATABASE IF NOT EXISTS school_db CHARSET gbk;
修改数据库字符集
ALTER DATABASE school_db CHARSET gbk;
设计表的要素:
1.表名(表信息)
2.表中的字段
3.字段的数据类型和长度
4.哪些约束
设计表(数据类型)
char(n) 长度为n的定长字符串, 即使内容只有一个字节,他也会占用占用n个字节的位置
varchar(n) 最大长度为n的可变长字符串,实际上有几个字节他就占用几个字节
date 日期, 包含年月日
datetime 年月日 时分秒
浮点型
数据类型(M,D)
M:精度,数据的总长度;D:标度,小数点后的长度
Float(6,2)、Double(6,2)
BLOB了解内容
BLOB是一个二进制大对象,可以容纳可变数量的数据,用于存储图片视频信息.有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
**
**
主键: 在一张表中代表唯一的一条记录,不能为空,不能重复
约束:PRIMARY KEY 设置主键约束
NOT NULL 不能为空约束
UNIQUE 唯一性约束检查约束设置条件
外键约束主键自动增长: AUTO_INCREMENT
默认值 DEFAULT default_value 字段
注释: comment ‘注释’
CREATE TABLE t_student( id INT , NAME VARCHAR(3) NOT NULL, sex VARCHAR(1) DEFAULT '男' , birthday DATETIME NOT NULL, reg_time DATETIME NOT NULL, phone INT UNIQUE, height FLOAT(4,1) )
数据库列表的创建
举例: CREATE TABLE t_student()
2.删除表
DROP TABLE [if exists ]表名
举例: DROP TABLE IF EXISTS t_student – 在判断完成t_student表是否存在后进行删除
3.修改表名
RENAME TABLE 旧表名 TO 新表名
举例: RENAME TABLE t_student TO student
4. 复制表结构
CREATE TABLE 新表名 LIKE 被复制表名
举例: CREATE TABLE t2_student LIKE t_student
修改表结构
– 添加主键约束(ALTER TABLE 表名 ADD PRIMARY KEY(列名) )
ALTER TABLE student ADD PRIMARY KEY (id)
– 删除主键约束(ALTER TABLE 表名 DROP PRIMARY KEY)
ALTER TABLE student DROP PRIMARY KEY
– 设置自增长(ALTER TABLE 表名 MODIFY 列名 类型 AUTO_INCREMENT)
ALTER TABLE student MODIFY id INT AUTO_INCREMENT
– 删除自增长(ALTER TABLE users MODIFY 列名 类型)
ALTER TABLE student MODIFY id INT
– 设置内容不能为空(ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL)
ALTER TABLE student MODIFY NAME VARCHAR(4) NOT NULL
– 设置内容可以为空(ALTER TABLE 表名 MODIFY 列名 类型 NULL)
ALTER TABLE student MODIFY NAME VARCHAR(4)NULL`
– 添加唯一约束(ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名))
ALTER TABLE student ADD CONSTRAINT exphone UNIQUE phone
– 关闭唯一约束(ALTER TABLE 表名 DROP INDEX约束名)
ALTER TABLE student DROP CONSTRAINT INDEX exphone
– 添加检查约束(ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK(条件))
ALTER TABLE student ADD CONSTRAINT sex CHECK('男')
– 删除检查约束(ALTER TABLE 表名 DROP CHECK 约束名)
ALTER TABLE student DROP CONSTRAINT sex
– 添加新列(ALTER TABLE 表名 ADD 列名 数据类型)
ALTER TABLE student ADD weight INT[FIRST] ALTER TABLE studnet ADD weight AFTER phone
– 删除列(ALTER TABLE 表名 DROP 列名)
ALTER TABLE student DROP weight
– 修改列名(ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型)
ALTER TABLE student CHANGE phone phones VARCHAR(10)
– 修改列数据类型(ALTER TABLE 表名 MODIFY 列名 新数据类型)
ALTER TABLE student MODIFY phone INT
在外界插入数据的方法
方式1: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2……,值n)
INSERT INTO t_student(NAME,sex,birthday,height,phone,reg_time)VALUES('jim','女','2000-2-2',170.2,'12324',NOW())
方式2: INSERT INTO 表名 set 列名1=值1,…列名n=值n
INSERT INTO t_student SET NAME='李四',sex='男',birthday='2000-2-2',phone='123445',reg_time=NOW()
方式3: INSERT INTO 表名(列1,列2……,列n) VALUES(值1,值2……,值n),(值1,值2……,值n) – 同时加入两行数据
INSERT INTO t_student (NAME,sex,birthday,height,phone,reg_time)VALUES('ji1m','女','2000-2-2',170.2,'1222324',NOW()),('jim2','女','2000-2-2',170.2,'1233424',NOW())
进行数据修改
UPDATE 表名 SET 列名 = ‘新值’WHERE 条件
UPDATE student SET NAME='凉凉' WHERE num=1 -- 将表名为student 的表中第一行的name改为凉凉
删除数据
DELETE FROM 表名 WHERE 条件
TRUNCATE TABLE 表名 清空整张表