mysql安装与基本使用

Mysql数据库的基本使用
服务端
1.安装:sudo apt-get install mysql-service
2.启动:sudo service mysql start
3.查看进程中是否存在mysql服务:ps ajx|grep mysql (/usr/sbin/mysqld)
4.停止服务:sudo service mysql stop
5.重启服务:sudo service mysql restart
6.查看配置文件:配置文件目录为/etc/mysql/mysql.conf.d/mysqld.cnf

客户端
1.安装:sudo apt-get install mysql-client
2.连接服务器:mysql -u root(用户名) -p mysql(密码)
3.退出:ctrl+d 或 exit 或 quit
4.修改输入提示符:prompt 提示符 (\D完整日期,\d数据库名称,\u用户,\h主机)
5.清屏:ctrl+shift+l

数据库操作
1.查看所有数据库: show databases;
2.创建数据库:create database 数据库名 charset = utf-8;
3.使用数据库:use 数据库名;
4.查看当前使用的数据库:select database();
5.删除数据库:drop database 数据库名;

数据表操作
1.查看所有数据表: show tables;
2.创建表:
create table table_name(
  column1 datatype constraint,
  column2 datatype,
  ...
  columeN datatype,
  PRIMARY KEY(one or more columns)
);
实例:
create table students(
  id int unsigned primary key auto_increment not null,
  name varchar(20) not null,
  age tinyint unsigned default 0,
  height decimal(5,2),
  gender enum("男","女","保密") default "保密"
);
3.查看表的创建语句: show create table 表名;
4.查看表结构: desc 表名;
5.修改表结构
  5.1.添加字段:alter table 表名 add 字段名 类型;
    alter table students add birthday datetime;
  5.2.修改字段类型: alter table 表明 modify 字段名 新类型及约束;
    alter table students modify birthday date not null;
  5.3.字段重命名: alter table 表名 change 旧名 新名 类型及约束;
    alter table students change birthday birth date not null;
6.删除表: drop table 表名;

数据操作
1.基本查询
  1.1.查询表中所有数据: select * from 表名;
  select * from students;
  1.2.查询指定列的数据: select column1, column2,... from 表名;
  select name, height from students;
2.添加数据
  2.1.全列插入:insert into 表名 values(...)[,(...)...];
  insert into students values(0,"悟空",40,178.50,"男","1980-10-01");
  insert into students values(0,"悟饭",20,180.00,"男","2000-10-2"), (0,"比克",default,190,default,"1950-1-1");
  2.2.部分插入:insert into 表名 (列1,列2,...) values(值1,值2,...)[,(值1,值2,...)];
  insert into students (name,age,birth) values("贝吉塔",60,"1970-1-1");
  insert into students (name,birth) values("特兰克斯","2008-12-1"),("悟天","2009-12-2");
3.修改数据
  update 表名 set 列1=值1,列2=值2...where 条件;
  update students set age=12 where name="特兰克斯";
4.删除数据
  4.1.物理删除
    delete from 表名 where 条件;
    delete from students where name="悟天";
  4.2.逻辑删除(设置isdelete字段,类型为bit,默认值为0,需要删除数据时修改isdelete=1)
    (alter table students add isdelete bit default 0 not null;)
    update students set isdelete=1 where 条件;

数据库备份
1.备份:运行mysqldump命令
  mysqldump -u root -p 数据库名 > python.sql(保存到*.sql文件)
  # 按提示输入密码
2.恢复
  2.1.连接mysql服务器,创建新的数据库,退出登录
  2.2.mysql -u root -p 新数据库名 < python.sql
  # 按提示输入密码

数据完整性
一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中。为了在表中更加准确的存储数据,保证数据的完整有效,
可以在创建表的时候为表添加一些强制性的验证,包括数据字段的类型和约束。
1.数据类型
使用数据类型的原则是:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。
常用数据类型如下:
  整数:int,bit
  小数:decimal
  字符串:varchar,char
  日期时间: date, time, datetime
  枚举类型(enum)
特别说明的类型如下:
  decimal 表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
  char 表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '
  varchar 表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
  字符串 text 表示存储大文本,当字符大于4000时推荐使用
  对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
2.约束
主键 primary key:物理上存储的顺序
非空 not null:此字段不允许填写空值
惟一 unique :此字段的值不允许重复
默认 default:当不填写此值时会使用默认值,如果填写时以填写为准
外键 foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,
都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制


转载于:https://www.cnblogs.com/yiwi515/p/7368000.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

批处理获取exe返回结果

echo off e:\a.exe a b c IF ERRORLEVEL 1 goto error IF ERRORLEVEL 0 goto success :error echo error goto end :success echo success goto end :end :: IF %ERRORLEVEL% LEQ 1 goto ::EQU - 等于 ::NEQ - 不等于 ::LSS - 小于 ::LEQ - 小于或等于 ::GTR - 大于 ::GEQ - 大…

centos7安装nginx和php,centos7安装nginx1.10和php7

安装nginx。1.首先在根目录下创建一个software文件夹用来存储下载的压缩包。2.然后cd跳转的software文件夹下&#xff0c;进行压缩包的下载wget -c https://nginx.org/download/nginx-1.10.1.tar.gz3.解压&#xff0c;然后跳转到解压的目录下tar -zxvf nginx-1.10.1.tar.gzcd n…

Java-日期 正则表达式

Java 日期和时间 Data类提供两个构造函数来实例化Data对象 Data()//参数是从1970 1 1 起的毫秒数Data(long millisec)获取当前日期时间 import java.util.Data;public class DataDemo {public static void main(String args[]) {// 初始化Data对象Data data new Data();//…

CCNA考试必看

成功者的经验&#xff0c;对我们来说&#xff0c;无疑是非常重要的&#xff0c;因为他们不但知道了成功的路&#xff0c;而且&#xff0c;经历过失败&#xff0c;知道哪些路是走不通的&#xff0c;这些经验对于后来者有很好的参考价值。已经通过CCNA的朋友&#xff0c;都非常愿…

oracle恢复指定数据文件,Oracle特殊恢复-BBED修改某个数据文件头

Oracle数据文件头中的scn要与控制文件中的scn一致&#xff0c;数据库才可以open&#xff0c;在open过程中我们可以通过bbed来修改某个数据文件头的scn&#xff0c;来欺骗oracle&#xff0c;来open库。1、环境如下使用Oracle 11gR2进行测试&#xff0c;具体版本为11.2.0.4SYSlin…

shell管道重定向程序的实现

管道常用于不同命令的组合使用&#xff0c;比如ps -aux|grep ..用于查找指定条件的进程&#xff0c;ls|less用于实现文件列表的分页显示等。总之是将前一个命令的输出作为后一个命令的输入&#xff0c;完成一个命令无法完成的功能。分别使用pipe()和popen()两种方式实现ls|less…

移动端网站,键盘弹出对页面的影响

在移动端网站中&#xff0c;ios与安卓键盘弹出时对页面有不同的处理方式。 ios&#xff0c;键盘弹出但整体页面高度不变。 安卓&#xff0c;页面高度屏幕高度-键盘高度 这样对页面样式就会造成不同的影响。 当有表单弹窗&#xff0c;且弹窗高度在页面高度的50%左右时影响尤为严…

Hyper-V和多处理器虚机

架构概述Hyper-V采用基于Hyperisor的架构&#xff0c;并且充分利用Windows驱动模型&#xff0c;以便提供广泛的硬件支持。Hypervisor可以把单个服务器划分为多个CPU和内存的容器。由于采用微内核架构&#xff0c;Hyper-V可以提供高效的分区间通信机制&#xff0c;并在此基础上搭…

oracle 11g 修改 sga,oracle 11g 调整SGA

1. 查看oracle 使用的参数文件SQL> show parameter spfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string /u01/app/oracle/p…

Vue.js(2.x)之Class 与 Style 绑定

1、前面看数据绑定时还很困惑v-bind处理class时可以使用json格式的值&#xff0c;为什么换成id、href等其他属性就不行。看了下文档解释后明白了些&#xff1a; 2.对象语法主要有以下三种形式&#xff1a; 1&#xff09;直接在v-bind指令后使用键值对形式&#xff1a;键是否显示…

软件外包项目中的进度管理

案例 A公司是一家美资软件公司在华办事机构&#xff0c;其主要的目标是开拓中国市场、服务中国客户&#xff0c;做一些本地化和客户化的工作。它的主要软件产品是由总部在硅谷的软件开发基地完成&#xff0c;然后由世界各地的分公司或办事机构进行客户化定制、二次开发和系统维…

请求转发和请求重定向的区别?

请求重定向Redirect&#xff1a; 1. 产生了两次请求&#xff0c;俩次相应 , 所以浏览器地址会发生改变 !2. 可以重新定向到非本项目的服务器地址! 请求转发forword&#xff1a; 1. 产生了一次请求&#xff0c;一次相应 , 所以浏览器地址不会发生变化 !2. 只能转发到本项目的服务…

linux 下yy命令,Linux 基本命令(一)--时间 常用命令

2019-07-30date 系统时间参数显示时间是个常用的命令&#xff0c;在写shell脚本中也经常会用到与日期相关文件名或时间显示。无论是linux还是windows下都是date命令。Linux下date命令用法date [OPTION]… [FORMAT]date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]date命令…

qemu PPP连接

呵呵&#xff0c;出差最大的好处就是不用安排时间陪老婆大人&#xff1a;&#xff09;用QEMU虚拟两台串口连接设备&#xff0c;利用UDP模拟串口。再在串口上配置pppd。这样就模拟简单路由器就有戏了&#xff1a;) host--eth-RT1---serial---RT2---eth--HostRT1 qemu配置&#x…

FZU - 2268 Cutting Game

/*这题主要是想到突破口--每次除以2(我感觉还是思维题&#xff0c;就像我当时做时&#xff0c;就是想不到 T^T)然后&#xff0c;用1个奇数和1个偶数举一下例子f(7) f(3) 1, f(3) f(1) 1, f(1) 1f(8) f(4) 1, f(4) f(2) 1, f(2) f(1) 1, f(1) 1 */ #include <ios…