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

[经验分享] Mysql基础(一)

[复制链接]

尚未签到

发表于 2018-10-7 06:29:05 | 显示全部楼层 |阅读模式
  ####################################################################################
  什么是数据库:
  DB,DataBase
  --》数据库 :依照某种数据模型进行组织并存放到存储器的数据集合。
  DBMS,DataBase Management System
  --》数据库管理系统:用来操纵和管理数据库的大型服务软件。
  DBS,DataBase System
  --》数据库管理系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统。
  常见的数据库软件?
  关系型数据库软件服务软件(RDBMS):
  Oracle(甲骨文):Oracle(商业软件),Mysql
  Microsoft(微软):SQL Server(商业软件)
  IBM:DB2(商业软件)
  非关系型数据库服务软件(NoSQL):(key-values键值对类型)
  redis     mongodb
  mysql的特点:
  --》适用于中小规模,关系型数据库
  --》跨平台
  --》通过API支持Python/Java/Perl/PHP等语言
  应用环境:
  LAMP LNMP
  #####################################################################################################
  一、搭建数据库服务器:
  装包:Mysql
  rpm -qa  | grep  -i  mysql
  修改配置文件:
  #ls /etc/my.cnf                    //主配置文件
  #ls /var/lib/mysqld                //数据库的存储目录
  #cat /var/log/mysqld.log          //日至文件
  启动服务:
  #systemctl start mysqld
  查看服务运行状态:
  #netstat -lnpt | grep :3306    //端口号:3306
  #ps -C mysqld
  #systemctl status mysqld
  使用初始密码登陆数据库:
  #grep  password  /var/log/mysqld.log
  #mysql -hlocalhost -uroot -p密码                       //初始密码中如果含有特殊字符应该使用单引
  二、进入数据库之后
  修改登陆密码:
  #show databases;                                    //提示需要修改密码才能使用

  #alter user root@localhost>  #set global validate_password_policy=0;                //设置只验证长度
  #set global validate_password_length=6;                //设置长度默认值为8个字符

  #alter user root@localhost>  #quit                                                //退出
  验证:
  #mysql -hlocalhost -uroot -p123456                    //登陆成功。
  永久设置密码验证策略:
  #vim /etc/my.cnf
  [mysql]
  validate_password_policy=0
  validate_password_length=6
  #####################################################################################
  三、sql命令的使用规则:
  --》命令不区分大小写(变量,密码除外)
  --》每条命令以分号结尾
  --》不支持Tab补齐
  --》\c可废弃当前编辑错的操作命令
  四、数据库基本管理:
  库管理:
  #mysql -uroot -p123456
  #show databases;            //查看已有库
  #create database 库名;        //创建库
  #drop database 库名;        //删除库
  #use 库名;                //使用库
  #select database();        //查看当前所在库
  #show tables;            //查看当前库里已有的表
  建表:
  create table 库名.表名(
  字段名 类型(宽度) 约束条件,
  字段名 类型(宽度) 约束条件,
  ...
  );
  create table gamedb.stuinfo(
  name char(10),
  age  int
  );
  查看表结构:
  desc 库名.表名;
  插入表记录:
  insert into 库名.表名 values(值列表);
  insert into gamedb.stuinfo values(“dcc”,23);
  查看表记录:
  select * from 库名.表名;
  删除表记录:
  delete from 库名.表名;            //删除所有表中记录,但表还在
  删除表:
  drop 库名.表名
  ;
  #####################################################################################################
  五、mysql数据类型
  支持的数据类型有哪些?
  数值类型 字符类型      日期时间类型    枚举型
  1、数值类型:整型,浮点型
  根据存储数值的范围整型类型分为:
  tinyint    1字节     -128~127(有符号)    0~255(无符号)
  smallint     2字节    -32768-32767        0~65535
  mediumint     3字节
  int         4字节
  bigint    8字节
  //规律:无符号范围为2的n次方-1,n表示位,1字节为8位
  根据存储数值的范围浮点型分为:
  单精度float(n,m)        4字节
  双精度float(n,m)        8字节
  //其中n代表总位数
  //m代表小数位的位数
  create table t1(
  pay float(5,2)
  );
  inserte into t1 values(199.99);        //总位数为5位,小数点后2位
  注意:
  使用unsigned,表示使用无符号数
  输入整数时,会自动补全小数位
  宽度仅是显示宽度,存数值的大小由类型决定
  数值超出范围,报错
  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
  2、字符类型:
  定长:char(字符数)
  --》最大长度255
  --》不够指定的字符数在右边用空格补齐
  --》字符数超出设定,无法写入
  变长:varchar(字符数)
  --》按照实际大小分配存储空间
  --》字符数超出设定,无法写入
  大文本类型:text/blob
  --》字符数大于65535存储时使用
  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
  3、日期时间类型:
  年        year        YYYY               2017
  日期      date         YYYYMMDD            20171220
  时间      time         HHMMSS                155145
  日期时间
  datetime   YYYYMMDDHHMMSS
  timestamp YYYYMMDDHHMMSS
  datetime与timestamp区别?
  当未给timestamp字段赋值时,自动以当前系统时间赋值
  当未给datetime字段赋值时,默认赋值为null
  使用2位数字给year字段赋值的规律?
  01~69为2000~2069
  70~99为1970~1999
  使用时间函数给日期时间类型的字段赋值。
  now():当前时间           year():当前时间的年份      month():当前时间的月份
  day():当前时间的天      date():当前时间的年月日      time():当前时间的时分秒
  ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
  4、枚举类型:
  enum:从给定值集合中取单个值        格式:enum(值1,值2,值N)
  set:从给定值集合中取一个或多个值    格式:set(值1,值2,值N)
  #########################################################################################
  六、约束条件:
  null:    允许为空,默认设置
  not null:    不允许位空
  key:        索引类型
  default:    设置默认值,缺省为null
  create table t3(
  name char(10) not null,           //字段名为name,类型为字符类型,宽度为10,设置不能为空
  age  tinyint unsigned default 23  //字段名为age,类型为微小整数,无符号(不能为负),默认值为23
  );
  desc t3;                        //查看表结构
  insert into t3(name) values(“dcc”);    //插入,仅给name字段赋值
  select * from t3;                    //结果,age字段会取默认值23
  ####################################################################################
  七:修改表结构:
  alter table 表名 执行动作;
  1、添加新字段:
  add   字段   类型(宽度);
  add   字段   类型( 宽度) 约束条件;
  add   字段   类型( 宽度) 约束条件  first;            //插入到第一列
  add   字段   类型( 宽度) 约束条件  after 字段名;        //插入到指定字段后
  2、删除字段:
  drop 字段名;
  3、修改字段类型:
  modify 字段 类型(宽度) 约束条件;
  4、修改字段名:
  change 原字段  新字段 类型(宽度) 约束条件;        //修改时,保持原始的类型(宽度) 约束条件。
  修改表名:
  alter table 原表名 rename 新表名;
  ################################################################################################



运维网声明 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-614065-1-1.html 上篇帖子: MySQL数据管理5-hj 下篇帖子: MySQL-存储过程权限报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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