mysql数据库学习笔记(一)

mysql数据库学习笔记(一)

数据库(DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合
数据库管理系统(DBMS):管理和操作数据库的大型软件,用于建立、适用和维护数据库,
对数据库进行同意管理和控制,以保证数据库的安全性和完整性。
比如:ORACLE /MYSQL等.
数据库系统(DBS):自在计算机系统中引入数据库候的系统,
通常由计算机硬件、软件、数据库管理系统和数据管理员组成.


授权新用户可以远程链接:
mysql>grant all privileges on . to root@192.168.1.22 identified by ‘admin’;

远程连接
mysql>mysql -uroot -padmin -h 192.168.1.22 -D databaseName -P 3306
-D:表示链接数据库是哪一个。
-P:大写的p,表示mysql的端口号.

数据库是数据库对象的集合.

information_schema:主要存储系统中的一些数据库对象信息,如用户表信息、列信息、权限信息
字符集信息和分区信息等.
performance_schema:主要存储数据库服务器性能参数
mysql:主要存储系统的用户权限信息
test:mysql自动创建的测试数据库,任何用户都可以适用

####创建数据库并制定编码为utf8
create database 数据库名称 character set utf8;

####查看数据库
show databases;

####使用数据
use 数据库名;

####查看使用那个数据库
select database();

####查看使用那个用户登录Mysql
select user();

####删除某个数据库
drop database database_name;


####查看存储引擎
show engines;(show engins \G ;\G表示语义结束,同时显示结果更好一点)
或者
show variables like ‘have%’;

mysql引擎默认为Innodb

在my.ini中可以修改引擎。


####查看数据类型有哪些
help data types;

####查看int类型帮助
help int;
help bigint;
help decimal;

数据类型:
1.数值型:int/integer/bigint
2.浮点数类型:float/double
3.定点数类型:dec(M,D) / decimal(M,D);
M是总位数;D表示小数点后的位数.
float/double数据类型存储数据时存储的是最近似值
decimal存储的是字符串,在需要表示金额等货币的时候优先选择decimal数据类型

4.时间日期类型:
date 4个字节
datetime 8个字节
timestamp 4个字节
time 3个字节
year 1个字节
如果表示年月日,一般使用date
如果表示年月日时分秒,一般使用datetime
如果需要经常插入或者更新日期为当前系统时间,一般会使用timestamp类型
如果表示时分秒,一般选择time
如果表示年,一般使用year。

如果存储的日期需要让不同时区的用户使用,则可以使用timestamp类型,
因为只有该烈性日期能够与时间时区相对应。

mysql> select curdate(),now(),now(),time(now()),year(now()) \G;
*************************** 1. row ***************************
curdate(): 2019-07-01
now(): 2019-07-01 21:12:34
now(): 2019-07-01 21:12:34
time(now()): 21:12:34
year(now()): 2019
1 row in set (0.00 sec)

5.字符串类型:char、varchar
varchar可变的字符串数据类型.

6.文本字符串数据类型:tinytext/text/mediumtext/longtext

7.binary系列字符串类型:binary(M)
varbinary(M)—–可变的二进制文件. 类是于varchar类型.
可以存储二进制数据(比如图片/音乐/视频)

8.存储文本是二进制的大文件
tinyblob/blob/mediumblob/longblob
与text类似,不过可以存储二进制数据.


表:由行和列组成,每一行表示一条唯一的记录,每一列表示这个表中的一个字段
列(属性列,cloumns),在创建的时候需要指定名字和数据类型.
索引(indexes) 指向的列中的数据不能重复
触发器(triggers)指用户定义的事物命令的集合,
当对一个表中的数据进行插入、更新或者删除时这组命令就会自动执行,
可以用来确保数据的完整性和安全性.

####创建表
create table table_name(
属性名 数据类型,
属性名 数据类型,

属性名  数据类型
);

CREATE TABLE t_dept (
deptno int(11) DEFAULT NULL,
dname varchar(20) DEFAULT NULL,
loc varchar(40) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

####查看表结构
desc table_name;

####查看创建表的语句
show create table table_name;

####删除表
drop table table_name;
####清空表中的数据
delete from table_name;

####修改表名
alter table old_table_name rename to new_table_name;

####增加字段(默认是在最后一个字段添加)
alter table table_name add 属性名 属性类型;

####在第一个位置添加字段
alter table table_name add 属性名 属性类型 first;

####指定字段之后添加字段
alter table table_name add 属性名 属性类型 after 属性名;

####删除字段
alter table table_name drop 属性名;

####修改字段的数据类型
alter table table_name modify 属性名 新的数据类型;

####修改字段名称(在修改字段名称的时候也可以重新定义字段类型)
alter table table_name change 旧属性名 新属性名 旧属性类型或者新的属性类型.

####修改字段的顺序(属性类型的时候可以重新定义)
alter table table_name modify 属性名1 属性类型 first|after 属性名2;


表的约束:
not null/default/unque/primary key/
auto_increment/foreign key

####创建表的时候指定多列为主键
create table table_name(
属性名 属性类型,

[constraint 约束名] primary key (属性名,属性名…)
);

####创建表的时候指定外键
create table table_name(
属性名 属性类型,

constraint 外键约束名 foreign key(属性名1) references 表名(属性名2)
);
属性名1为子表中设置外键的字段名
属性名2为父表中设置主键约束的字段名.

外键指向另一张表的主键.
####创建表的时候指定主外键
mysql> create table t_dept(
-> deptno int primary key,
-> dname varchar(32),
-> loc varchar(32)
-> );

CREATE TABLE t_employee (
empno int(11) NOT NULL AUTO_INCREMENT,
ename varchar(20) DEFAULT NULL,
job varchar(25) DEFAULT NULL,
sal double(10,2) DEFAULT NULL,
deptno int(11) DEFAULT NULL,
PRIMARY KEY (empno),
KEY fk_deptno (deptno),
CONSTRAINT fk_deptno FOREIGN KEY (deptno) REFERENCES t_dept (deptno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8


mysql索引:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100798.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 静态路由的基本配置实验总结_三个路由器配置静态路由

    静态路由的基本配置实验总结_三个路由器配置静态路由静态路由的基本配置静态路由配置图如下PC1IP地址:192.168.1.2PC2IP地址:192.168.2.2PC3IP地址:192.168.3.2PC4IP地址:192.168.4.2R1IP地址:f1/0192.168.3.1f0/2192.168.4.1s2/01.1.1.1R2IP地址:f0/0192.168.1.1f1/0192.168.2.1s2/01.1.1.2配置好四台电脑

  • Android获取短信验证码并自动填充的两种方式「建议收藏」

    Android获取短信验证码并自动填充的两种方式「建议收藏」有些项目为了方便客户操作,减去客户输入短信验证码的时间,会要求安卓app能够获取收到的短信验证码并自动填充到输入框。所以,我整理了安卓获取短信验证码并自动填充输入框的两种方法,而且正式在项目中使用并无bug。      一:监听短信库的变化,获取收到的短信内容,并通过正则表达式取出数字验证码填充到输入框中。代码如下:      publicclassObtainSmsVerifyC

  • pycharm 最新激活码(JetBrains全家桶)[通俗易懂]

    (pycharm 最新激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 1g的树莓派4b能做什么_树莓派4B开发板简介

    1g的树莓派4b能做什么_树莓派4B开发板简介树莓派简介RaspberryPi(中文名为“树莓派”,简写为RPi,(或者RasPi/RPI)是为学生计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux,随着Windows10IoT的发布,我们也将可以用上运行Windows的树莓派,别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全。树莓派由注册于英国的慈善组织“Raspber…

  • 接口定义规则

    接口定义规则写了五年代码,打算总结一下接口一下规范.  刚刚进公司时,写的接口返回过map,string,object,json等等,回头看看写的乱七八糟的. 1.接口最好是统一返回自定义实体.  如:ResultMessages.    privateString   resultCode,//返回code如:200(成功) 错误代码自己定义   message; 

  • linux中安装pycharm_ubuntu激活成功教程pycharm

    linux中安装pycharm_ubuntu激活成功教程pycharm前言由于学习需要,准备开始在linux环境下使用python。一开始是使用了vim作为编译器的,我承认vim确实很简洁,然而对于我这种新手来说确实是很低效,一开始用vim写代码真的是让我重新体会了一遍VC手撸C语言的感觉,而且面对了还是tf这种函数巨多的库。因此还是转去用了pycharm,可能我注定和大神无缘吧,逼格都提升不到。这篇文章主要介绍linux下的安装、环境配置和学生优惠。安装…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号