mysql 简介
数据库:数据库是存储数据的仓库
数据库管理系统(DBMS):是一种操作和管理数据库的大型软件,
mysql:免费,开源,速度快,体积小,适用于中小型企业。
非关系型数据库Nosql(不是没有sql,是比关系型数据库更加强大的数据库):Mongodb,Redis,HBase....
关系型数据库Rdbms :(1).表table:具有固定的列数和任意的行数。
(2).database数据库:数据库是一些关联表的集合。
(3).Fied列(字段)
(4).row行
(5).primary key(主键),主键是唯一的,一个数据库表中只能有一个主键。
(6).foreign key (外键),外键用于关联两个表。
(7).index(索引):理解为目录
一个自动不全的mysql软件:mycil -u root
进入数据库:mysql -u root -p
(1)创建数据库:create database 数据库名称;
(2)创建数据库:create database 数据库名称 charset=utf8;
查看所有数据库:show databases;
进入(切换)数据库:use 数据库名称;
删除数据库:drop database 数据库名称;
mysql 关系型数据库:
mysql的默认端口是:3306;
Ascll 是美国的
计算机里面有256个Ascll字符,一个Ascll在内存中站1个字节。2的8次方=256
计算机只认识二进制的字符01010101;
iso:标准iso-646
unicode:标准iso-10646
iso把unicode收购了:标准utf16
utf8:万国码(覆盖了全国所有的编码)
数据库:数据库是一个装东西的容器,
存储引擎:采用不同性能的引擎
mysql的三种存储引擎:(1).myisam:没有外键,没有事务,是5.5版本之前的默认引擎
(2).innodb:5.5版本以后默认的存储引擎是innodb,存在磁盘里面
(3).memory:存在内存里面
什么是 事务:要么全部执行,要么全部不执行。
什么是sql:结构化查询语言,sql是专门为数据库建立的操作命令集
DDL: 数据定义语言 用来定义数据库对象:创建库、表、列等
DML: 数据操作语言 用来操作数据表中的记录
DQL: 数据查询语言 用来查询数据
DCL: 数据控制语言 用来定义访问权限和安全级别
一本书:《浪潮之巅》
MySQL支持多种类型,大致可以分为三类
(1).数值类型:(1).int (2).double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;
4.2 char
(2).字符串类型:(1)char:固定长度字符串,如果输入的不够会自动补全.(2).varchar:可变长字符串类型。(3).text:字符串类型;(4).bold:二进制类型;
(3).时间类型:(1).date :某年某月某日;(2).time:时间类型 :某事某分某秒。(3).datetime:某年某月某日某事某分某秒。
创建学生表
创建表: 制定表结构步骤:
先进入某一个数据库:use 数据库名
输入建表命令;
CREATE TABLE 表名(
列名1 列名类型 [约束],
列名2 列名类型 [约束],.....
列名N 类的类型 [约束]);
添加一列(本来我已经有4个字段,又想添加一个新的字段)
添加一个新的字段:alter table 表名 add 列名 数据类型; 例如:alter table students add score int;
查看表的字段信息(结构):desc 表名
修改一个表的字段类型:alter table 表名 modify 字段名 数据类型;例如:alter table students modify id bigint;
删除一列:alter table 表名 drop 字段;例如:alter table students drop name;
修改表名:rename table 原表名 TO 新表名;
查询某张表的创建细节: show create table 表名; 例如:show create table student
修改表的字符集:alter table 表名 charset utf8; 例如:alter table student charset utf8;
修改表的列名:alter table 表名 change 原字段名 新字段名 varchar(20) ;例如:alter table students change name newname varchar(20);
删除表:drop table 表名;
DELETE 与 TRUNCATE的区别:DELETE可以删除指定数据也能删除所有数据 TRUNCATE只能删除所有数据
- DELETE删除表中的数据,表结构还在;删除后数据还可以找回
- TRUNCATE删除是把表直接DROP掉,然后再创建一个同样的新表.删除的数据不能找回.执行速度比DELETE快