Mysql - 01

目录

 

1. 数据库

2.MySql

3. MySql客户端工具

3.1 连接登录服务器

3.2 查看数据库

3.3 进入数据库

3.4 查看数据表

3.5 退出客户端

4. 远程登录MySql服务器

5. 中文问题

6.数据库管理

6.1创建数据库

6.2 查看数据库

6.3 修改数据库

6.4 删除数据库

7. 数据表的管理

7.1 创建表

7.2 查看表

7.3 修改表

8.SQL

8.1 insert 插入数据

8.2 update 修改数据

8.3 delete 删除数据

8.4 select 查询数据

9.技术术语

10. 存储引擎

10.1innodb

10.2 myisam

11.mysql数据类型

11.1 字符串

char

varchar

text

11.2 数字

11.3 日期

datetime

date

time

timestamp

12. default和comment


1. 数据库

存储数据的仓库有:

Oracle            MySql

DB2                Sybase

Sql Server      Sqlite

No Sql数据库  Redis

MongoDB


2.MySql

创始人是一个芬兰人,把MySql公司,以10亿美金,卖给Sun公司,一年后,Sun被Oracle收购,MySql被Oracle收购之后,Oracle不重视MySql的开发,收缩了MySql的开发社区,只允许几个大的厂商参与开发,还推出收费版MySql

主流开源社区,认为MySql存在闭源风险,开源社区已经不支持MySql,而是转向支持MariaDB数据库

MariaDB数据库

MySql创始人从MySql新开了一个新的分支,起个名叫MariaDB,继续开发

阿里向Ma也riaDB贡献代码


3. MySql客户端工具

MySql命令行客户端有:

      Workbench       Navicat         Sqlyog         MySql Front...

3.1 连接登录服务器

c:\program files\mysql5.5\bin

 

mysql -uroot -p

登录本机服务器,连接3306端口

 

mysql -uroot -p -hxxx.xx.xx.xxx -P3306

登录指定ip地址的服务器,连接指定的端口

 

mysql -uroot -p

password:****

3.2 查看数据库

 

show databases;

show schemas;

3.3 进入数据库

 

 

use mysql;

use test;

 

3.4 查看数据表

show tables;

3.5 退出客户端

 

quit

\q


4. 远程登录MySql服务器

4.1 MySql用户

MySql用户用 用户名@网络地址 来标识

例如:

   'root'@'localhost'

   'root'@'192.168.122.8'

   'root'@'192.168.122.%'

   'root'@'%'

 

用户授权:

   可以设置一个用户访问数据库的权限,比如允许访问哪些库,哪些表,哪些字段,允许执行哪些操作

 

让root用户可以在远程连接,需要两步:

1.创建用户:

create user 'abc'@'localhost' identified by '123456'

create user 'abc'@'192.168.0.68' identified by ''

create user 'abc'@'192.168.0.%' identified by ''

create user 'abc'@'%' identified by ''

 

2.对用户授权:

grant    select,insert,update,delete     on     test.*   to   'abc'@'%'

grant    create,alter,drop               on    db1.*     to   'abc'@'localhost'

grant    all privileges                  on    *.*       to   'abc'@'%'

grant    select,insert                   on    db1.t1    to   'abc'@'%'

grant    select(id, name)                on   db1.t1     to   'abc'@'%

 

创建远程访问的root用户

创建用户

create user 'root'@'192.168.31.%'

identified by 'root';

对用户授权

grant all on *.* to

'root'@'192.168.31.%';

连接远程服务器(需要关闭防火墙)

mysql -uroot -p -hxxx.xx.xxx.xx -P3306


5. 中文问题

数据库端存储的字符编码,与客户端字符编码可能不一致

GBK

   中  d6 d0

 

UTF-8

   中  e4 b8 ad

 

服务器要做正确的编码转换,必须知道客户端发送的是什么编码

客户端必须告诉服务器,自己的编码是什么编码

windows命令行的字符编码,就是gbk编码

通知服务器,客户端的编码是gbk

set names gbk;


6.数据库管理

6.1创建数据库

create database db1

charset utf8;

 

6.2 查看数据库

show databases;

查看建库语句

show create database db1\G

 

 

6.3 修改数据库

只能修改数据库的默认字符编码

alter database db1

charset gbk;

show create database db1\G

 

6.4 删除数据库

删除数据库,所有的表,所有的数据都会被删除,不可恢复

 

drop database db1;

show databases;


7. 数据表的管理

7.1 创建表

create database db1

charset utf8;

use db1;

-- 创建表

create table tb1(

name varchar(10),

gender char(1)

) engine=innodb charset=utf8;

 

7.2 查看表

show tables;

查看表结构

desc tb1;

查看建表语句

 

show create table tb1\G

 

7.3 修改表

 

--改表名

rename table tb1 to user;

show tables;

 

--改表属性

修改存储引擎(innodb或myisam)

修改字符编码(gbk或utf8)

alter table user

engine=myisam charset=gbk;

show create table user\G

 

--添加字段

first 第一个

after 指定字段之后

 

alter table user add

id int first;

desc user;

alter table user add

email varchar(100) after name;

alter table user add(

age int,

height int

);

 --改字段名

alter table user

change gender sex char(1);

desc user;

 

--改字段类型

alter table user

modify sex char(2);

desc user;

 

--改字段顺序

 

 

first

after

alter table user

modify age int after name;

desc user;

 

 

 

--删除字段

删除字段,这个字段中所有的数据也会被删除,不可恢复

alter table user

drop column height;

desc user;

删除表

 

删除表,会删除表中说有的数据,不可恢复

drop table user;

如果存在的话,才执行删除

drop table if exists user;

show tables;

--截断表 (truncate)

 

删除表并重新创建,两步合并成一步执行

truncate table user;


8.SQL

结构化的查询语言    Structured Query Language

DDL 数据定义语言

     建库、建表...

DML 数据操作语言

     增删改

DQL 数据查询语言

       select

 

 

8.1 insert 插入数据

use db1;

新建user

create table user(

id int,

name varchar(10)

)engine=innodb charset=utf8;

通知服务器,客户端使用的是什么编码

set names gbk;

插入数据

insert into user values(1,'张三');

insert into user values

(2,'李四'),(3,'王五'),(4,'赵六');

 

8.2 update 修改数据

update user set

id=5,name='钱七'

where id=1;

select * from user;

 

8.3 delete 删除数据

delete from user

where id>3;

 

8.4 select 查询数据

select * from user;

select name from user;

select name,id from user;


9.技术术语

database

schema

mysql中都指的是数据库

table  表

row

record

    一行数据

    一条记录

column

field    列   字段 


10. 存储引擎

innodb (默认)

myisam

memory

10.1innodb

 

支持事务

支持外键

支持行级锁

有较多修改操作

10.2 myisam

不支持事务

不支持外键

只有表级锁

大量查询,很少修改的表,可以使用myisam,查询效率更高


11.mysql数据类型

11.1 字符串

char

定长字符串

char(20)

    定长20个字符

    不足20个字符,补空格

    超出20个字符,可能出错或截断

最大长度,不能超过255个字符

所有该字段的字符串数据,都是连续存储

 

varchar

 

 

变长字符串

varchar(20)

    最长不能超过20个字符

   不足20个字符,直接存储;

    超出20个字符,可能出错或截断;

存储的最大字节量,不能超过65535

   gbk编码,字符数65535/2

   utf8编码,字符数65535/3

字节量<=255,需要一个额外字节,表示字符串的字节长度

字节量>255,需要两个额外字节,表示字符串的字节长度

 

char 和 varchar

   char类型效率更高,定长字符串尽量使用char类型

text

    最大存储65535字节的字符串

 

11.2 数字

 

unsigned  无符号,只有正数

zerofill 

    用0填充配合int(6)格式设置使用

    1234 --> 001234

    12 --> 000012

    1234567 --> 没有影响

 

tinyint     1字节

smallint    2字节

int         4字节

bigint      8字节

 

float       4字节

double      8字节

         运算可能会产生不精确的结果

 

decimal(m,n)

      一共m位,小数n位,

      字节量:m+2

   表示金额,一般使用decimal

11.3 日期

datetime

年月日时分秒

date

年月日

time

时分秒

timestamp

时间戳

修改一行数据时,第一个timestamp字段,会自动更新成系统当前时间

最大只能到2031年

 

 

数据类型测试

use db1;

drop table if exists tb1;

create table tb1(

a int(6) unsigned zerofill,

b timestamp,

c timestamp

)engine=innodb charset=utf8;

insert into tb1(a) values

(12),(123),(1234567);

select * from tb1;

insert into tb1(a) values(-123);

修改其他字段,第一个timestamp字段会自动更新

update tb1 set a=999

where a=12;

select * from tb1;


12. default和comment

default 设置字段的默认值

插入一行数据时,一个字段中,不插入数据,自动填入指定的默认值

comment 在建表语句中,添加注释信息,会存储在服务器中

create table a(

a int comment '....';

);


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值