MySQL学习笔记(1)

一、数据库
1.1 简单地说:数据库(Database或DB)是存储、管理数据的容器;
严格地说:数据库是“按照某种数据结构对数据进行组织、存储和管理的容器”。
总结:数据永远是数据库的核心。
1.2 文件存储方式保存数据的弊端:
 (1) 缺乏对数据的整体管理,数据不便修改;
 (2) 不利于数据分析和共享;
 (3) 数据量急剧增长,大量数据不可能长期保存在文件中。
1.3 数据库管理系统(Database Management System,简称DBMS):管理数据库的软件。
通过“数据库管理系统”,数据库用户可以轻松地实现数据库容器中各种数据库对象的访问(增、删、改、
查等操作),并可以轻松地完成数据库的维护工作(备份、恢复、修复等操作)
数据库用户无法直接通过操作系统获取数据库文件中的具体内容;
数据库管理系统通过调用操作系统的进程管理、内存管理、设备管理以及文件管理等服务,为数据库用户
提供管理、控制数据库容器中各种数据库对象、数据库文件的接口。
二、关系数据库
1.1 关系型数据库,即是使用关系模型把数据组织到数据表(Table)中。这种所谓的”关系型”可以理解为”表
格”的概念, 一个关系型数据库由一个或数个表格组成。
主流数据库产品:
 Oracle(Oracle)
 DB2(IBM)
 SQL Server(MS)
 MySQL(Oracle)
1.2 表头(header): 每一列表示的名称;
列(col): 具有相同数据类型的数据的集合;
行(row): 每一行用来描述某个人/物的具体信息;
值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。
1.3 关系数据库管理系统
开源:MySQL源代码免费下载
简单:MySQL体积小,便于安装
性能优越:MySQL性能足够与商业数据库媲美
功能强大:MySQL提供的功能足够与商业数据库媲美
1.4 结构化查询语言SQL
SQL(Structured Query Language) 是结构化查询语言的缩写。
SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义
数据,控制数据,所有数据库都使用相同或者相似的语言。
1.5 MySQL特点
MySQL是一个单进程多线程、支持多用户、基于客户机/服务器(Client/Server简称C/S)的关系数据库管理系

统 。
(1)性能高效
(2)跨平台支持
(3)简单易用
(4)开源
(5)支持多用户
三、MySQL数据库管理
1.1 mysql中的数据类型—(数字、日期\时间、字符串)
(1)数字类型
整数: tinyint(1字节)、smallint(2字节)、mediumint(3字节)、int(4字节)、bigint(8字节)
浮点数: float、double、real、(精确型)decimal
(2)日期和时间: date、time、datetime、timestamp、year
 (3)字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
1.2 char()与varchar():
varchar(255)表示可以存储255个汉字,而每个汉字占用两个字节的存储空间。假如这个字符串没有那么
多汉字,例如仅仅包含一个‘中’字,那么varchar(255)仅仅占用1个字符(两个字节)的储存空间;而
char(255)则必须占用255个字符长度的存储空间,哪怕里面只存储一个汉字。
1.3 MySQL日期类型
date表示日期,默认格式为‘YYYY-MM-DD’;
time表示时间,格式为‘HH:ii:ss’;
year表示年份;
datetime与timestamp是日期和时间的混合类型,格式为’YYYY-MM-DD HH:ii:ss’
1.4 MySQL复合类型
MySQL 支持两种复合数据类型:enum枚举类型和set集合类型。
(1)enum类型的字段类似于单选按钮的功能,一个enum类型的数据最多可以包含65535个元素。
(2)set 类型的字段类似于复选框的功能,一个set类型的数据最多可以包含64个元素。
四、创建数据库
1.1 创建命令的格式如下:
create database 数据库名 [其他选项];
为了便于在命令提示符下显示中文, 在创建时通过 character set gbk 将数据库字符编码指定为 gbk。
create database samp_db character set gbk;
创建成功时会得到 Query OK, 1 row affected(0.02 sec) 的响应。
例:create database s;
注意: MySQL语句以分号(;)作为语句的结束, 若在语句结尾不添加分号时, 命令提示符会以 -> 提示你
继续输入(有个别特例, 但加分号是一定不会错的);
五、创建数据库表
1.1 创建命令的格式如下:
create table 表名称(列声明);
列与列的描述之间用逗号(,)隔开;
例:create table student(id int unsigned not null auto_increment primary key,
name varchar(13),age int, tel varchar(13) default “-“,
birth date);
1.2 以 “id int unsigned not null auto_increment primary key” 行进行介绍:
“id” 为列的名称;
 “int” 指定该列的类型为 int
“unsigned” 加以修饰, 表示该类型为无符号型。
“not null” 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
“auto_increment” 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个
比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。
“primary key” 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。
其他的:
varchar(13) 表示存储的变长字符串的长度为8;
int的默认长度为11;
default属性指定当该列值为空时的默认值为“-”;
date格式为YYYY-MM-DD,应输入8个数否者会报错,在数中不用加“-”,系统会自动转换成默认格式。
六、MySQL数据库语句
1.1 增:
alter table hehe add job varchar(13) default “superman”;//在表中添加一个新列,并定义其在没有赋
值时的默认值是‘superman’;
insert into 表名(列名1,列名2,..) values(对应值1,对应值2,..);//给表中插入数据
1.2 删:
drop table 表名;//删除表
drop database 数据库名;//删除数据库
alter table 表名 drop 列名;//删除表中的对应列
delete from hehe where name=’李四’;//删除表中的记录,将name=‘李四’的全部内容删除
1.3 改:
rename table 原表名 to 新表名;//修改表名
alter table 原表名 rename as 新表名;//修改表名
alter table 表名 change 表中的一个列名 修改后的列名 列的类型;//修改表中的列
update hehe set age=28 where name=’李四’;//更新表中的数据,将name为‘李四’的age列的内容改为28;
1.4 查:
show databases;//查看所有数据库
show tables;//查看所有表
desc 表名;//查询表的结构
select * from 表名;//查询表的内容
select * from 表名 where name=’李四’;//查询name=‘李四’的全部内容
1.5 其他:
create database 数据库名 ;//创建数据库
create table 表名(列声明);//创建数据库表

net start mysql56  //在命令提示符中输入,用于开启mysql56服务
net stop mysql56   //在命令提示符中输入,用于关闭mysql56服务

在登录数据库时指定,mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p;//进入对应的数据库
use 数据库名;//进入对应的数据库

select concat(name,'<-->',tel)haha from student;//字符串的拼接,并命名为haha
select concat(name,'<-->',tel) as haha from student;//字符串的拼接,并命名为haha
select name,length(name)length from student;//输出字符串长度,并命名为length
select upper('hello world'),lower('HELLO WORLD');//默认为创建一个伪表
select upper('hello world'),lower('HELLO WORLD') from dual;//创建一个伪表
                    //UPPER('hello world');用于将字符转换为大写形式 
                    //LOWER(char)用于将字符转换为小写形式 
                    //dual:伪表(数据库里不存在的表,虚拟的表)

七、子类重写父类的方法(两同两小一大)
两同–名字,参数列表
两小–抛出异常小,返回值类型
一大–访问修饰权限
八、mysql数据库怎么给字段列设置默认时间为当前时间
如果是日期字符串类型就是~CREATE TABLE 表名(time datetime NOT NULL DEFAULT NOW(),…)
如果是时间戳~CREATE TABLE 表名(time int NOT NULL DEFAULT CURRENT_TIMESTAMP(),…)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhiYuanYe

您的鼓励将是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值