MySQL
一、数据库的定义:
数据库是指长期存储在计算机内有组织可共享的数据和数据之间关系的集合。数据库中的数据按照一定的数据模型组织、描述和存贮,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定范围内可以被多个用户所共享。
二、windows中Mysql的安装
从Oracle公司的官方网站上,可以下载到MySql的安装版本和解压缩版本。下面附上网址
https://dev.mysql.com/downloads/mysql/
MySql Enterprice Edition 企业版 - 收费或试用
MySql Community Edition 社区版本 - 免费
MySql Classic Edition 经典版本 -免费
1、下载
下载之后,将压缩包解压至想要安装的位置win+r打开,输入cmd进去命令窗。使用以下命令。
cd:/解压包路径/bin
2、初始化操作
mysqld --initialize --console
会显示如下:复制自动生成的默认密码,进入下一步。
3、将mysql添加到系统服务中
mysqld --install
4、启动服务
net start mysql
5、登录数据库
mysql -uroot -p +回车之后直接粘贴刚刚复制的密码,回车。如果报错,很可能是你复制到时候,操作出了问题。
6、修改密码
直接使用下面的代码,把后面引号中的‘新密码’改成你想要更换的,建议i整个简单一点的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
7、其他的操作
net stop mysql //停止服务
mysqld --remove //卸载服务
select version() //查看当前mysql的版本
如果忘记密码,则删除data文件夹,重新执行2-6即可
三、创建库、表
1、如何创建一个数据库:
create database 数据库名 default character set utf8; 默认 utf8编码
create database 数据库名 也是创建数据库的
show databases 查询所有的数据库
use 数据库名 切换到你想要用的数据库
2、如何创建一个表
create table 表名称(列名称 数据类型 约束规则,...) engine=数据库引擎 default charset utf8;
create table 表名称(列名称 数据类型 约束规则,...) ;
mysql> create table t_student(
-> id bigint primary key,
-> name varchar(20) not null,
-> sex boolean default 1
-> ) engine=innodb default charset utf8;
具体的语法规则:
CREATE TABLE <表名>
–(<列名> <数据类型> [ <列级完整性约束条件> ]
–[,<列名><数据类型>[ <列级完整性约束条件>] ] …
–[,<表级完整性约束条件> ] );
其中:
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件
3、删除一个表
drop table 表名称; 如果存在则删除表,否则报错
drop table if exists 表名称;; 如果存在则删除表,不存在 也不会报错
4、mysql中的数值列类型
5、Mysql中的字符串列类型
char与varchar的区别
1、char是定长数据,如果char(10)但里面只保存了1个字符,则它的实际长度仍然是10。Mysql对查询的结果进行了处理 ,所以使用length无法判断它所占用的长度;varchar(10)时,如果里面只保存了1个字符,则它的长度为1,所以varchar被称了可变长字符
2、char的取值范围为0-255;varchar的取值范围为0-65535。如果需要存储的字符串的长度跟所有值的平均长度相差不大,适合用char,如MD5。 对于经常改变的值,char优于varchar,原因是固定长度的行不容易产生碎片。
3、对于很短的列,char优于varchar,原因是varchar需要额外一个或两个字节存储字符串的长度
4、char和varchar后面如果有空格,char会自动去掉空格后存储,varchar虽然不会去掉空格,但在进行字符串比较时,会去掉空格进行比较
6、大对象类型
7、set和枚举
enum枚举类型实际上是当作字符串进行处理,设置当前列中所允许的取值,取值只能是枚举值中的任意一个值
create table t1(id enum(‘a’,’b’,’c’));
set集合类型实际上是当作字符串进行处理,设置当前列中所允许的取值,取值可以是集合中的任意多个值
create table t1(id set(‘a’,’b’,’c’));
8、日期和时间列类型
9、修改基本表alter
修改表 ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束] ]
[ DROP <完整性约束名> ]
[ MODIFY <列名> <数据类型> ];
说明:
<表名>:要修改的基本表
ADD子句:增加新列和新的完整性约束条件
DROP子句:删除指定的完整性约束条件
MODIFY子句:用于修改列名和数据类型