mysql库、表操作

课件:MySQL(一)

简介

ubuntu20.04  mysql8.0数据库的安装
https://blog.csdn.net/cruiserblog/article/details/106934570

列举常见的关系型数据库和非关系型都有那些?

关系型数据库:
Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL

非关系型数据库:
NoSql、Cloudant、MongoDb、redis、HBase

知识点 一:基本结构

mysql 免费 性能高 可靠性好 开源
特点
# ls -a
# bash .start_mode.sh
mysql   关系型数据库 (开源,免费)
二维表   行跟列  字段跟字段信息   ekcl表头
组成的结构---我们存数据都是存在表格中的
每一列都是一种类型的数据,
mysql---库---表

知识点二:MySQL账户操作

mysql -u 用户名 root -p密码   密码要挨着写

退出:  四种退出方式:
quit;
ctrl +z
\q
exit;

创建mysql账户
第一步:
必须要先进入mysql
create user 'xiaoqi'@'%'identified by 'qwe123';
# % :指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

第二步:
给他所有权限:
grant all on *.* to 'xiaoqi'@'%';
#用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
# *.* 所有库.所有表
第三步:
刷新:
flush privileges;

select user(); # 查看当前用户
删除
drop user

drop user "qiye"@"%";

知识点三:MySQL库操作

数据库

#  ;英文分号结尾
select database(); # 查看当前在哪个数据库

show databases;  # 打开多有数据库  默认会有4个系统数据库,想死随便玩
create database mydb;  # 创建数据库
show create database mydb;  # 查看库的详情 utf8
思考一下 数据库要是有这个库 我在创建会怎样?
# 报错
# create database if not exists mydb; # 没有就给我创建,有就不创建
# if not exists  可加可不加
# 思考
我现在在这个库里没有?
select database();

drop database 库名;  # 删库跑路  用户  表格

数据库的使用
use mydb;
select now(); 获取当前时间

知识点四:MySQL表操作

数据表

create table tanzhou(id int,
                    name varchar(20),klass varchar(20));
# 数据类型
show tables;  # 查看当前库所有的表 
create table [if not exists]  tb_name (create definition…);  # 在创建表的时候就好给定字段约束
Query OK, 0 rows affected  , 1 warning (0.00 sec)
查询OK, 0行受影响,1个警告(0.00秒)

desc tanzhou;   # 查看表结构  描述的意思
default  默认约束

key 建立索引  能不用尽量别用
show create table tanzhou;  # 查看表结构
engine 引擎 

这里稍微给大家讲解一下
InnoDB  和  MyIsam
外键、行锁、事务    
drop table tanzhou;  # 删除表 能不删尽量不删

exit() 退出

show:显示 

\c 取消

知识点五:MySQL表数据操作

# ppt 表数据进行操作
show tables;
-----------------------------------------------
# -----插入------
insert into tanzhou(id,name) values(1, 'xiaoming'),(2,'qiyue');   # 插入数据
这个版本的数据库不能插入中文
insert into tanzhou(id,name) values(2,'xiaowang'),(3,'lili');# 插入多条数据
insert into tanzhou value(4,'xiaoli'); # 不指名字段,就是要插入全字段,有多少字段就要插入多少,少一个都不行

select * from tanzhou;
insert into tanzhou set id=5,name='haha' 只能插入单挑数据
insert tanzhou set id=6,name='qiye'; # into 可加可不加
---------------------------------------------
# ------查询-------
select id from tanzhou;
select id from tanzhou where id < 4; # 条件查询
select name from tanzhou;  # 查询name
select * from tanzhou;     # 查询所有
----------------------------------------------
# 更新数据  --- 修改---------
update tanzhou set name='heihei' where id = 2; # 如果不加条件 全部都修改了
-----------------------------------------------
# --------删除--------
我们数据一般不会完全删除,只会标记一下,不在给你们显示

delete from tanzhou where id=4;
select * from tanzhou;
把id为4的数据删除了, 我不去加条件会怎么样?
delete from tanzhou;
select * from tanzhou;  # 什么数据有没有了

--------------------------------------------------------------------------
show tables;
create table old_tb (id int,name char(10),age char(4));
show create table tb_name;
# 修改表名
alter table old_tb rename to new_tb;
show tables;  # 已经改名字了
# 改字段

alter table new_tb change column id new_id int;

# 修改字段类型
alter table new_tb modify column name varchar(10);

alter table new_tb add age int;

drop 删除
-----------------------------------------------------------------------

逐步增大
create table t1(id int, qq float(3,3)); #(4,3)
desc t1;
insert into t1 value(12321,0.22222);


varchar(10) 字符 有多少就算多少  10个字节
char(10)  没有10个会用空格补齐到10个


create table qiye(id int,time timestamp) #默认增加创建时间
insert into qiye(id,time) values(1,default);

create table baye(id int,time timestamp default current_timestamp) 也可以这样
insert into baye(id,time) values(1,default);


总结

mysql 简介
	进入:
    	mysql -u用户名 -p 密码
    创建用户:
    	创建:
            
    		create user 'haoyi'@'localhost' identified by 'qwr123';
        赋予权限:
        	grant all on *.* to 'haoyi'@'localhost';
        立即生效:
        	flush privileges;
    查询用户:
    	select user();
    删除用户:
    	drop user 用户名;
数据库操作:
	创建数据库:
    	create database 数据库名字;
    查看数据库:
    	select database();
    删除数据库:
    	drop database 数据库名字;
	进入数据库:
    	use 数据库名字;
数据表操作;
    创建表:
    	create table tanzhou(id int,
                            name varchar(20));
    创建表:
    	查询所有表:
        	show tables;
        查看表结构:
            show create table 表名;
        删除表:
        	drop table 表名;
            
单表数据的增删改查:
	增:
    	insert [into]
    删:
    	delete
    改:
    	update
    查:
    	select

拓展

两种数据库之间的区别:

关系型数据库

  关系型数据库的特性(原子,一致,隔离,持久)
    # 读未提交
    # 不可重复读
    # 可重复读
    # 串行化

  1、关系型数据库,是指采用了关系模型来组织数据的数据库;

  2、关系型数据库的最大特点就是事务的一致性;

  3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

  关系型数据库的优点

  1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解;
  2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
  3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率;
  4、支持SQL,可用于复杂的查询。

  关系型数据库的缺点

  1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
  2、固定的表结构;
  3、高并发读写需求;
  4、海量数据的高效率读写;

非关系型数据库

  非关系型数据库的特性

  1、使用键值对存储数据;
  2、分布式;
  3、一般不支持ACID特性;
  4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

  非关系型数据库的优点

  1、无需经过sql层的解析,读写性能很高;
  2、基于键值对,数据没有耦合性,容易扩展;
  3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

  非关系型数据库的缺点

   1、不提供sql支持,学习和使用成本较高;
   2、无事务处理,附加功能bi和报表等支持也不好;
posted @ 2023-08-31 21:31  csh逐梦  阅读(2)  评论(0编辑  收藏  举报