栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL基础学习-day1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL基础学习-day1

(注:以下db为database  col为column,即字段  tb为table)

1、软件介绍        

        楼主仅是软工小白,博客仅用作学习笔记,并不专业,望大家谅解哈。

楼主使用的软件是老师给我们学习用的,并不是大家传统使用的哈,以下为截图。

 第一步是打开MySQL5.1文件目录下的sateup.cmd。

第二步是打开mysql-front5.1下的MySQL-Front.exe

输入服务器localhost以及登陆密码root

打开后就是以下界面,里面有我们老师供我们使用的基本的数据库

2、MySQL数据库层次结构(此处搬用他人笔记,因为我上课走神了=-= ---原文:mysql数据库层次结构_MySQL逻辑分层介绍_无名沙的博客-CSDN博客)

MySQL一般分为四个层次:连接层,服务层,引擎层,存储层。

连接层

提供与客户端连接的服务。

当客户端发出一个请求后(如增删改查的SQL语句),首先到达该层,将服务器与客户端建立连接。

服务层

服务层分两个作用:

提供各种用户使用的接口。 如select、insert等

提供SQL优化器(MySQL Query Optimizer)。 SQL优化器是MySQL服务层自带的一个服务,它会自动优化用户写得不是最优的SQL,使其达到优化的效果。但由于优化器毕竟只是优化器,有时候会将用户自定义的优化方案给更改掉,从而使用户自己的优化方案失效,这一点需要注意。

引擎层

引擎层提供各种数据存储的方式。MySQL的存储引擎有很多,比较常用的比如有InnoDB, MyISAM。

InnoDB与MyISAM的区别为:

InnoDB 事务优先,所以适合高并发操作,使用的是行锁

MyISAM 性能优先,适合查询多的场景,使用的是表锁

查看存储引擎

show engines;

查看默认存储引擎

show variables like 'default_storage_engine%';

存储层

数据存储层,主要讲数据存储在运行裸设备的文件系统上,并完成与存储引擎的交互

3、MySQL的字符集以校验规则的查看和修改

显示字符集

show character set;

显示校验规则

show collation like 'utf8(gbk...)%';

查看各个层次的字符集

show variables like 'character_set_%';

修改服务层编码(字符集)

set character_set_client = GBK;

修改所有层编码

set names 'utf8';
4、操作数据库 4.1、创建数据库

create {database|schema} [if not exists] db_name

        [default] character set character_name

        [default]collate collation_name;

(字符集及校验规则可不设定)

4.2、删除数据库

drop database [if exists] db_name;

4.3、修改数据库字符集、校验规则

(将数据库db_name的字符集设为gb2312,校验规则为gb2312_chinese_ci)

alter database db_name
      character set gb2312
      collate gb2312_chinese_ci;

4.4、查看服务器里的所有数据库

show database;

 打开要使用的数据库

use db_name;

 查看当前正在使用的数据库

select database();

 5、操作表 5.1、创建表

create table [if not exists] tb_name

(field_name  data_type  is_null  auto increment  primary key comment'xxx',

name   varchar(4) not null,

...)engine=innodb default charset=utf8; 

补充:SQL中字符串使用单引号的原因:(与Java语句中的双引号做区别)

Resultset query(String sql)——结果集查询函数(Java)

sql = "select * from students"

sql = "select * from students where sex='男' "(这里'男'用单引号引出,为SQL语句,sql=""内双引号部分为Java语句)

创建主键的两种方法:

1、在字段后面直接跟关键字primary key

s_no char(4) not null primary key comment'学号'

2、在所有字段定义完了用primary key(字段名) ——此方法可以用来创建多个主键

 primary key(s_no、s_name)

5.2、删除表

drop table [if exists] tb_name;

 5.3、修改表

5.3.1、添加一个字段

alter table tb_name

        add [column] col_definition(字段属性) [first|after col_name](位置);

注:

alter table course
      add c_id int(6) not null auto_increment first;

——此为错误,因为设为键的字段才能设置为自增长

所以我们可以给c_id增加unique key(唯一索引)

alter table course
      add c_id int(6) not null unique key auto_increment first;

5.3.2、修改字段默认值

alter table tb_name

        alter col_name [set default d_value|drop default]

5.3.3、重命名字段(字段名,字段类型,宽度,默认值......)

alter table tb_name

        change old_col_name col_definition [first|after col_name]

5.3.4、修改字段类型

alter table tb_name

        modify col_name data_type;

5.3.5、删除列

alter table tb_name

        drop col_name;

5.3.6、给表重命名

alter table tb_name

        rename to new_tb_name

5.4、查看表

5.4.1、查看数据库下有哪些表

show tables;

 5.4.2、查看表的基本结构

describe tb_name;
desc tb_name;

5.4.3、查看表的详细结构

show create table tb_name;

5.5、复制表

5.5.1、复制表的结构

create [temporary] table [if not exists] new_tb_name like old_tb_name;

5.5.2、复制表的结构与数据

create [temporary] table [if not exists] new_tb_name as select * from old_tb_name;

6、操作数据 6.1、插入表数据

6.1.1、插入字段对应的数据(每列都要有对应的值)

方式一:

insert into tb_name values(字段对应的值);

(主键重复 插入失败)

方式二:

replace into tb_name values(字段对应的值);

(主键重复 更新数据)

6.1.2、给指定的字段插入值

insert into tb_name(Field_name)
values(字段对应的值);

6.1.3、同时插入多条数据

insert into tb_name
values('字段对应的值),
       (......),
       (......);

6.2、复制表的数据(前提:两个表的结构相同)

insert into new_tb_name select * from old_tb_name ;

6.3、导出数据表的数据到外部文件

select ... from tb_name into outfile file_name

6.5、从外部文件导入数据到数据库表

load data local infile file_name into table tb_name [character set xxx];

6.4、删除表数据 

delete from tb_name;

6.6、插入图片的两种方式

方式一:直接写图片路径

insert into tb_name 
values('value','value','value','value','d:/456.png');

方式二:用load_file();

insert into tb_name 
values('value','value','value','value',load('d:/456.png'));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/324469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号