1.1 数据与数据库
1.数据:客观存在记录信息并且可以鉴别的符号。
2.数据存储方式:纸张,磁盘,光盘等
3.数据存储目的:检索
4.数据库(DB:Data base):按照某种数据结构存储数据的仓库。
5.数据库分类:
-
关系型数据库:存储数据以一张二维表结构方式来进行存储
-
非关系型数据库:不是以二维表格方式
6.数据库管理系统(DBMS:Database management System.):用于操作和管理数据库的软件系统。
7.数据库管理系统分类:
1)关系型数据库管理系统(RDBMS)
a. Oracle :大型分布式的关系型数据库管理系统,软件免费,服务收费。
b. MySql:中小型关系型数据,开源免费 支持GPL协议
c. Sqlserver Mircrosoft公司产品
d. DB2 IBM产品
2)非关系型数据库管理系统(NoSQL) (not only SQL)
a. redis
b. MongoDB
c. HBase
1.2 mysql介绍
- 简介
瑞典Mysql AB公司开发的关系型数据库管理系统。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。体积小,速度快,成本低,支持千万级数据,成为中小型网站开发的主流选择。
MySQL的存储引擎是插件式基于表的存储引擎
- 下载与安装
网址:<u>https://www.oracle.com/mysql/</u> 或 <u>www.mysql.com</u>
安装版 、绿色版(zip)
- 通过命连接数据库
连接:
cmd弹出命令窗口
输入:mysql –uroot –p密码 //-u用户名 –p 密码
- 常用命令
查看所有的数据库:show databases;
切换数据库:use 数据库的名称;
查看当前数据库中的所有表:show tables;
查看帮助信息:\h
退出:exit / quit
开启服务:net start 服务名(mysql) window窗口输入
停止服务:net stop 服务名(mysql)
- 客户端工具 navict / sqlyog
1.3 sql:
1)sql(structured query language): 结构化的查询语言,用于操作和管理数据库
2)sql分类(重点)
A. DDL 数据定义语言
create / drop /alter / rename / truncate
B. DML 数据的操作语言(重要)
insert / delete / update /select(DQL)
C. DCL 数据的控制语言
grant / revoke
D. TCL 事务的控制语言
start transaction / commit / rollback
1.4 创建、****删除****数据库
创建语法:CREATE DATABASE [IF NOT EXISTS] db_name
|
删除语法:DROP DATABASE [IF EXISTS] db_name
|
删除db
DROP DATABASE IF EXISTS db;
|
1.5 创建数据****表
数据表:就是一张二维表格,一行也叫一条“记录”,一列(域)也叫一个字段(或属性)。
表《====》类
属性 属性
1.5.1 数据类型
数字类型
整型
TINYINT 1字节(-27~27-1)
INT 4字节 21亿 可以加int(4) 4代表宽度,默认int(11)(开发常用)
BIGINT 8字节
浮点型 m代表长度,n 小数的位数 ,可以省略(m,n)按实际值计算
float(m,n) 单精度 float(5,2) 34.56789=>34.57 3456.789 =>3456.79 (错了)
double(m,n) 双精度
可能计算的结果不精确:1.2334+2.345345=>3.57234234234 sum
定点型 m代表长度,n 小数的位数 可以省略(m,n) 默认(10,0)
decimal(m,n) 作用:存放一些精度有要求的数据.(开发常用)
非常精确,银行,金融行业
decimal money 3456.789=>3457.0(所以必须制定位数)
字符串类型
char(n) 定长 name char(10) abc会出现7个空字符
varchar(n) 变长 name varchar(10)abc 只用3个空间不出现空字符
区别:varchar节约空间,但char效率高
如:
性别,手机号,身份证号 char
地址,姓名等 varchar 建议255长度
text 大文本
日期类型
date 年月日
time 时分秒
datetime 年月日时分秒 (开发常用)
timestamp 时间戳 (有日期限制)
特殊类型(字符型)
set(‘aa’,’bb’,’cc’) 在此范围取任意个数据 hobby set(‘唱歌’,’学习’,’散步’) ‘唱歌,学习’ 当数字时 取二进制从右到左
enum(‘aa’,’bb’,’cc’) 在此范转取任意一个数据 sex enum(‘男’,’女’) ‘男’
bit 0/1
1.5.2 创建****表结构
创建表 语法:
|
CREATE TABLE [IF NOT EXISTS] tbale_name
(
列名1 类型(长度) 约束,
列名2 类型(长度) 约束
)
例:
创建学生表
CREATE TABLE IF NOT EXISTS student
(
sid CHAR(10) not null , #默认null
sname VARCHAR(20) not null,
age int ,
birthday DATE,
hobby SET('唱歌','学习','散步'),
sex enum('男','女')
)
特殊:
create table ddd
(
hobby SET('唱歌','学习','散步'),
sex enum('男','女')
)
INSERT into ddd values ('唱歌,学习','女')
INSERT into ddd values (6,1); #110 '唱歌'0,'学习' 1,'散步'1(从右到左)
|
删除表
语法:DROP TABLE 表名
|
删除数据库中的某一个表
DROP TABLE student;
|
1.5.3 表****结构****列****的添****加****,修改,删除操作
- 表结构的查询:
|
查询表结构
DESC 表名
|
- 表结构添加新列
语法:ALTER TABLE 表名 ADD 列名类型 (长度) 约束(first|after)
|
添加到表的最后
ALTER TABLE student ADD idcard char(18);
添加到表的第一个位置
ALTER TABLE student ADD id INT FIRST;
指定位置的后面添加
ALTER TABLE student ADD address VARCHAR(255) AFTER age;
|
- 表结构中列的删除
语法:ALTER TABLE student DROP 列名
|
删除指定的列名
ALTER TABLE student DROP id;
ALTER TABLE student DROP address;
ALTER TABLE student DROP idcard;
|
- 表结构的修改
语法:ALTER TABLE 表名 change 原列名 新列名 类型(长度)
modify 新列名 类型(长度)(了解 )
|
修改列名(要加上类型)
ALTER TABLE student CHANGE age sage int;
修改列的类型
ALTER TABLE student CHANGE birthday birthday datetime;
修改列的类型长度
ALTER TABLE student CHANGE sname sname VARCHAR(100);
ALTER TABLE student MODIFY sname VARCHAR(20); (了解)
|
- 修改表名
语法:RENAME TABLE tbl_name TO new_tbl_name
|
修改表名
RENAME TABLE aaa TO new_aaa;
|
- 清空表数据(清空表中的数据)
语法: TRUNCATE [TABLE] tbl_name
|
清空表中的数据
TRUNCATE TABLE student;
|
修改密码:
my.ini
1.停止服务
[mysqld]
2.skip-grant-tables #跳过权限验证
3.启服务
网友评论