设为首页 收藏本站
查看: 802|回复: 0

[经验分享] 初识Mysql(一)

[复制链接]

尚未签到

发表于 2018-10-6 12:26:17 | 显示全部楼层 |阅读模式

1 搭建数据库服务器


2 MYSQL数据类型


3 修改表结构


1 搭建数据库服务器
  1.1 存在mariadb时:
  #systemctl status mariadb
  #systemctl stop mariadb
  #rpm -e --nodeps  mariadb-libs #不依赖关系卸载
  #rm -rf /etc/my.cnf
  #rm -rf /var/lib/mysql/*
  1.2 新安装时
  [root@ser51 ~]# yum -y install perl-Data-Dumper perl-JSON
  [root@ser51 ~]# rpm -Uvh mysql-community-*.rpm
  #无论软件存在与否都执行升级
  [root@ser51 ~]# rpm -qa | grep -i mysql
  1.3启动服务
  服务名称:mysqld
  端口号:3306
  主配置文件:/etc/my.cnf
  数据库目录:/var/lib/mysql 启动服务,数据数初始化会生成文件
  日志文件:/var/log/mysqld.log
  服务脚本:/usr/lib/systemd/system/mysqld.service
  1.4 连接数据库
  [root@ser51 ~]# which mysql
  /usr/bin/mysql
  [root@ser51 ~]# rpm -qf /usr/bin/mysql #询问文件属于哪个包
  mysql-community-client-5.7.17-1.el7.x86_64
  [root@ser50 ~]# mysql -u root -p密码
  [root@ser50 ~]# mysql -h 服务器 -u用户名 -p密码 数据库
  查看登录的初始密码:
  [root@ser51 ~]# grep password /var/log/mysqld.log
  登录:
  [root@ser51 ~]# mysql -uroot -p'5;wG)DluZ)#Q'  #特殊符号用单引
  1.5 临时登录生效
  第一次登录需要重新设置密码才能查看数据库信息
  设置全局密码验证策略:
  mysql> set global validate_password_policy=0;
  设置全局变量密码长度:
  mysql> set global validate_password_length=6;

  mysql>>  1.6 全局永久生效
  [root@ser51 ~]# vim /etc/my.cnf
  [mysqld]
  validate_password_policy=0
  validate_password_length=6
  1.7 数据库使用命令
  SQL指令:
  DDL:数据定义语言
  DML:数据操作语言
  DCL:数据控制语言
  DTL:数据事物语言
  mysql> select database(); #查看当前所在的库:
  mysql> create database 库名;  #创建数据库
  mysql> use 库名;  #切换数据库
  mysql> system ls /var/lib/mysql #不退出操作linux命令
  mysql> drop database 数据库名;  #删除数据库
  创建表
  mysql> create table 库名.表名(字段名1 字段类型(宽度) 约束条件, ...);

  mysql>>  mysql> drop table 库名.表名   #删除表
  mysql> describe 表名 #查看表内字段(desc)
  mysql> insert into 表名 values();
  mysql> select * from 表名;
  mysql> update 表名 set 字段="新值" where 字段="值";
2 MYSQL数据类型
  2.1 数值类型
  tinyint  1字节  -128~127  0~255
  int        4字节
  float    4字节   float(m,n) m:总位数  n:小数位位数
  double  8字节
  2.2 字符类型
  定长:char(255) 不写宽度默认为1
  不够指定字符数时在右边用空格补齐(会浪费磁盘空间)
  变长:varchar  按数据实际大小分配存储空间(会消耗CPU资源,每次都会询问需要的储存的空间的大小)
  大文本类型:text/blob
  数值类型的宽度和字符类型的宽度的区别:
  字符类型超出就不能写入数据;
  数值类型的宽度是显示宽度,不能控制给字段赋值的大小,大小由类型本身决定;
  案例:int类型的宽度
  mysql> create table db1.t10(id int zerofill,pay int(3) zerofill);
  #不够字节的用0填充
  mysql> insert into t10 values(25,25);
  mysql> select *from t10;
  +------------+------+

  |>  +------------+------+
  | 0000000025 |  025 |
  +------------+------+
  2.3 日期时间类型
  年:  year  YYYY
  日期:date  YYYYMMDD
  时间:time  HHMMSS
  日期时间:datetime/timestamp   YYYYMMDDHHMMSS
  Datetime占8个字节
  Timestamp占4个字节
  区别:当没有给两者分别赋值时,timestamp自动以当前系统时间赋值,而datetime默认为NULL
  案例:
  create  table   t15(
  meetting  datetime,
  partty       timestamp
  );
  insert into  t15  values(now(),now());
  insert into  t15(meetting)  values(20171020091828);
  insert into  t15(partty)  values(20191020091828);
  select  * from t15;
  2.4 时间函数
  now()  获取调用此函数时的系统日期时间
  year()  date() time()  day() month()
  mysql> select date(now()); #函数可以嵌套
  Year的年份处理:默认使用4位数字表示
  2位数字时:01~69为2000~2069  70~99为1970~1999
  2.5 枚举类型
  字段只能在指定的范围内选择
  格式:
  字段名 enum(值1,值2,值N)  单选
  字段名 set(值1,值2,值N)  多选
  案例:
  create table t21(name char(10),sex enum("boy","girl"),
  likes set("film","game","book","food"));
  mysql> insert into t21 values("tom","boy","film,game");
  mysql> insert into t21 values("hai",2,"film,game");#可以用数字表示
  2.6 约束条件
  作用:限制如何给字段赋值
  NULL:空,不设置默认为空  NOT NULL:不允许为空
  Key:索引类型
  Default:默认设置
  Extra:额外设置
  案例:查看约束条件(desc)
  mysql> create table t22(name char(10) not null,
  -> sex enum("boy","girl") default "boy",
  -> age tinyint(2) unsigned not null default 18,
  ->likes set("game","food","book","music") not null
  default "game,book");
  mysql> insert into t22(name) values("tom");
  #其他字段没有写值,使用默认
  mysql> insert into t22 values("jom",1,20,"game,music");
  注意:“null” 和 “” 和 null的区别
  mysql> insert into t22(name) values("null");
  Query OK, 1 row affected (0.04 sec)
  mysql> insert into t22(name) values(null);
  ERROR 1048 (23000): Column 'name' cannot be null
  mysql> insert into t22(name) values("");
  Query OK, 1 row affected (0.03 sec)
3 修改表结构
  alter table 库.表 执行动作
  3.1 添加新字段
  add 字段名  类型(宽度);
  add 字段名  类型(宽度) 约束条件;
  add 字段名  类型(宽度) 约束条件 first; #添加在第一个
  add 字段名  类型(宽度) 约束条件 after 字段名; #在...之后添加
  add 字段名  类型(宽度),add 字段名  类型(宽度); #添加多个
  案例:

  mysql>>
  mysql>>
  mysql>>  3.2 删除已有字段
  drop 字段名;
  3.3 修改字段类型
  modify 字段名 类型(宽度) 约束条件;
  3.4 修改字段名
  change 原字段名 新字段名  类型(宽度) 约束条件;
  3.5 修改表名
  alter table 旧表名 rename (to) 新表名


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-613796-1-1.html 上篇帖子: MySQL --1数据库及表操作 下篇帖子: 初识Mysql(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表