色破飞机 发表于 2018-10-10 11:42:53

MySQL数据库基本管理-001

  MySQL数据库
  ============
  MySQL (RHEL5/6)
  MariaDB( RHEL7 )
  数据迁移mysql ---> MariaDB
  -------------------------
  1.MySQL数据库服务安装:
  # rpm-qmysql-server || yum -yinstallmysql-server
  # servicemysqld   status |start|stop
  # chkconfigmysqld on
  2.主配置文件:/etc/my.cnf
  服务名/进程名: mysqld
  进程所有者/组: mysql/mysql
  默认监听端口号:3306
  传输协议:tcp
  数据库目录:/var/lib/mysql/
  ==============
  3.安装官网下载的mysql软件提供数据库服务
  # /etc/init.d/mysqldstop
  # rpm -e--nodepsmysql-server   mysql
  # rpm -q mysql-server   mysql
  # rm-rf /etc/my.cnf
  # rm -rf /var/lib/mysql/*
  # tar -xvf MySQL-5.6.rpm.tar
  # rpm-Uvh MySQL-*.rpm
  # servicemysql start
  # netstat -untlap| grep mysql
  # cat /root/.mysql_secret               //初始密码存放位置
  # mysql -hlocalhost -uroot-pCxifrkkA
  mysql>set passwordforroot@"localhost"=password("123");//首次进入数据库需要更改密码
  mysql>quit;
  # mysql -hlocalhost -uroot-p123
  mysql>show databases;
  ===============
  4.把数据存储到数据库服务器上的过程?
  4.1连接数据库服务器    mysql-hlocalhost-uroot-p123
  4.2选择库    use库名;
  4.3创建表    createtable ...
  4.4向表中插入记录   insertinto ...
  4.5查询记录
  4.6断开连接quit
  -------------------------------
  **数据以文件的形式存储在数据库目录下
  **库或表都是以文件的形式存储在数据库目录下的
  ===============
  5.数据库服务的基本使用?
  SQL命令使用规则:
  命令不区分字母大小写,
  \c 可废弃当前编写错的操作
  命令必须以;结尾
  命令不支持tab键补齐
  库名的命名规则:
  具有唯一性
  区分字母大小写
  只能使用数字、字母_
  不能是纯数字
  不要使用特殊字符和关键字?* .
  ===============
  6.数据库管理基本命令:
  # mysql [-h服务器 -u用户名 -p密码 数据库]
  # quit 或 exit 退出
  showdatabases;         //查看服务器上已有的库
  selectdatabase();      //查看当前所在的库
  showtables;            //显示当前所在库下已有的表
  select * from 表名;            //查看表所有的记录
  select 字段名列表 from 表名;   //查看表记录
  desc表名;                        //查看表结构
  use库名;                        //切换库
  createdatabase库名;         //创建新数据库
  createtable[库名.]表名(
  字段名   类型(宽度)约束条件,
  字段名   类型(宽度)约束条件,
  字段名   类型(宽度)约束条件
  );                                     //创建表
  insertinto表名values();   //向表中插入记录
  dropdatabase库名;//删除已有的库
  drop   table表名;    //删除表
  deletefrom 表名;   //删除表中的所有记录
  ===============
  7.mysql数据库类型
  字符类型(名字专业家庭地址)
  数值类型   (工资 成绩 年龄 身高 体重)
  日期时间类型(生日注册时间 上课时间   约会   出生年份)
  枚举类型set   enum(性别爱好)字段的值只能在列举的范
  7.1 字符型(名字专业家庭地址)
  char      定长255
  varchar   变长65532//根据存储数据的多少开辟存储空间
  大文本类型大于65535时使用
  blob/text
  -----------------------------
  7.2 数值类型
  整数类型 (工资 成绩 年龄 身高 体重)
  根据存储数值的范围又分为:
  有符号         无符号
  tinyint    微小整型    -128~127      0~255
  smallint   小整型
  MEDIUMINT中整型
  int (默认11字符)大整型   -2^31~~2^31-1   0~2^32-1
  bigint   极大大整型
  ----------------------------
  7.3 浮点型 (带小数点的数)
  float(m,n)    单精度
  double(m,n)   双精度
  整数位.小数位总位数
  n表示总位数
  m 表小数位位数
  decimal(M,D) 其中M为有效位数,D为小数位
  ***
  注意):数值类型的宽度与字符类型宽度的区别?
  ***数值不够指定宽度时,在左边填空格补位
  数值类型的宽度是显示宽度,不能够控制给字段赋值的大小,字段值的大小由字段类型决定。
  1)zerofill   填0代替空格补位
  2)unsigned   无符号(正数)
  --------------------------
  7.4.1 日期时间类型(生日注册时间 上课时间   约会   出生年份)
  year   (占用1字节)年    YYYY    2016
  date(占用4字节)日期YYYYMMDD    20161117
  time(占用3字节)时间HHMMSS      172358
  datetime(占用8字节) 日期时间YYYYMMDDHHMMSS
  范围:1000-01-01    --->   9999-12-31
  timestamp (占用4字节)日期时间YYYYMMDDHHMMSS
  范围:1970-01-01    --->   2038-01-19
  练习:
  mysql> create table t16(name char(10), age tinyint(2) zerofill unsigned, money float(7,2), s_year year, birthdaydate, up_class time, meetingdatetime);
  mysql> insert intot16values("zhangbaoli",21,20000,1998,20161221,083000,20161218203000);
  ***
  注意:
  1):datetime 与 timestamp 的区别?
  当未给TIMESTAMP字段赋值时,自动以当前系统时间赋值,而DATETIME字段默认赋值为 NULL.
  2):year年份处理?
  当只用2为数字赋值时,01-69视为2000~2069,而70-99视为1970~1999.
  练习:
  mysql> create table t17(time1 datetime,time2 timestamp);
  mysql> insert intot17   values(20161117174928,20161117174928);
  mysql> insert intot17(time1) values(20181117174929);
  mysql> insert intot17(time2)values(20151117174929);
  ------------------------------
  7.4.2 使用时间函数获取时间给日期时间类型字段赋值?
  now()    获取调用此函数时的系统日期时间
  year()   获取年份
  date()   获取日期
  month()获取月份
  day()    获取日期(几号)
  time()   获取时间
  sleep(N)休眠N秒
  sysdate() 获取时间
  curdate() 获取当前系统时间
  curtime() 获取当前系统时刻
  练习:
  mysql> select now();
  mysql> selectyear( now() );
  mysql> selectyear( 20191224 );
  mysql> selectdate( now() );
  mysql> createtablet15(name char(10),age tinyint(2) unsigned,pay float(7,2),up_class time,birthday date,s_year year,
  meettingdatetime);
  mysql> insert intot15values("lili",21,18800.88,093000,20171008,1995,now());
  mysql> insert intot15values("jerry",29,28800.88,now(),now(),now(),now());
  mysql> insert intot15values("tom",21,18800.88,time(20171224201818),date(20171224201818),year(now()),now());
  ------------------------------
  7.5 枚举类型set   enum(性别爱好)字段的值只能在列举的范
  围内选择:
  enum(值1,值2,值N)      只能在列举的范围内选择一个值
  set(值1,值2,值N)       能在列举的范围内选择一个或多个值
  练习:
  mysql> createtablet21(name char(10),age tinyint(2) unsigned,pay float(7,2),birthday date,sex enum("boy","girl","no"),likes set("book","film","game","it"));
  mysql> insert into t21 values("bob",21,21000,20161118,"boy","book,it");
  mysql> insert into t21 values("alic",23,11000,20161218,"man","book,it,football");
  mysql> insert into t21 values("lucy",18,28000,20160918,2,"film,game");
  ================
  约束条件:(限制如何给字段赋值)
  作用:当向表中插入新记录时,限制如何给字段赋值,若建表时不设置约束条件,使用mysql的默认设置。
  null       允许赋null值 默认设置
  not null   不允许赋null值
  key      索引类型
  default    设置默认值,缺省为null
  字段额外设置 :字段的值自动增长   字段描述信息
  练习:
  mysql> createtablet24(name char(10) not null ,age tinyint(2) unsigned default 24 ,pay float(7,2) ,birthday date,sex enum("boy","girl","no") default "boy",likesset("book","film","game","it") default "film,game");
  mysql> insert into t24values(null,23,11000,20161218,"man","book,it");
  mysql> insert into t24values("null",23,11000,20161218,"man","book,it");
  mysql> insert into t24values("",23,11000,20161218,"man","book,it");
  mysql> insert into t24(name,age)   vlaues("lilei",29);
  mysql> insert into t24(name,pay,birthday)values("jerry",12000,20161127);
  mysql> insert into t24(name,age,pay,birthday)values("jerry",31,12000,20161127);
  ==========================================================

页: [1]
查看完整版本: MySQL数据库基本管理-001