千家信息网

DBA成长之路---mysql数据库服务基础(一)

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,mysql 数据库服务#主配置文件/etc/my.cnf #查看服务状态systemctl status mysqld#数据库目录/var/lib/mysql #数据库进程名[root@my
千家信息网最后更新 2024年11月12日DBA成长之路---mysql数据库服务基础(一)

mysql 数据库服务
#主配置文件

/etc/my.cnf 

#查看服务状态

systemctl status mysqld

#数据库目录

/var/lib/mysql      

#数据库进程名

[root@mysql ~]#ps -C mysqld         PID TTY          TIME CMD 5604 ?        00:00:00 mysqld

#默认端口号

[root@mysql ~]#netstat -pantu | grep 3306   tcp6       0      0 :::3306                 :::*                    LISTEN      5604/mysqld    

#进程所属者

[root@mysql ~]#grep mysql /etc/passwd           mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false

#进程所属组

[root@mysql ~]#grep mysql /etc/group        mysql:x:27:[root@mysql ~]# ps aux | grep mysqldmysql     5604  0.2 16.8 1119216 171772 ?      Sl   21:36   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pidroot      5754  0.0  0.0 112660   972 pts/0    R+   21:39   0:00 grep --color=auto mysqld[root@mysql ~]# ls -ld /var/lib/mysqldrwxr-x--x. 5 mysql mysql 4096 12月 19 21:36 /var/lib/mysql

#mysql 启动后自动生成的日志文件

[root@mysql ~]# ls /var/log/mysqld.log  /var/log/mysqld.log

使用sql命令管理数据库

sql 命令分类DDL数据定义语言     (create  alter  drop)DML数据操作语言      ( insert  update   delete   select )DCL数据控制语言      ( grant  revoke )DTL数据事物语言      ( commit  rollback  savepoint )

把数据存储到数据库服务器上的过程

1,连接数据库服务器客户端自己提供连接工具2,创建库(文件夹)数据库命名规则?不能纯数字不能有特殊符号不能用关键字唯一性

创建库

create database 库名;mysql> create database gamedb;#在对应数据库目录会生成相关文件[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/db.opt

查看已有库

mysql> show databases;

删除库

mysql> drop database gamedb;Query OK, 0 rows affected (0.00 sec)[root@mysql4-1 mysql]# ls /var/lib/mysql/gamedb/ls: 无法访问/var/lib/mysql/gamedb/: 没有那个文件或目录

切换库

use 库名;mysql> use mysql;

查看当前所在的库

mysql> select database();+---------------+| database()    |+---------------+| NULL         |+---------------+1 row in set (0.00 sec)

查看库里已有的表

mysql> show tables;

3.建表(文件)

create table 库名.表名(字段名 字符类型,字段名 数值类型,...);mysql> create table gamedb.stu(        -> name char(10),        -> age int        -> );

插入表记录
insert into 库名.表名 values(值列表)

mysql> insert into gamedb.stu values ("jim",23),("tom",21);

查看表记录
select * from 库名.表名;

mysql> select * from stu;+-------+--------+| name   | age       |+----------+----------+| jim      |   23       || tom       |   21     |+----------+----------+

查看表结构
desc 库名.表名

mysql> desc gamedb.stu;

删除表记录
delete from 库名.表名

mysql> delete from gamedb.stu;Query OK, 2 rows affected (0.03 sec)mysql> select * from stu;Empty set (0.00 sec)

删除表
drop table 库名.表名

mysql> drop table gamedb.stu;Query OK, 0 rows affected (0.24 sec)mysql> show tables;Empty set (0.00 sec)

mysql数据类型
支持的数据类型

数值型:整型,浮点型

整型:根据存储数值的范围整型分为:

    tinyint          smallint    mediumint      int               bigint    1个字节     2个字节     3个字节         4个字节      8个字节create table t3(age int unsigned);      #unsigned 不允许存储负数

浮点型:根据存储数值的范围分为:

单精度:float (n,m) n表是总位数,m表示小数位位数        float(7,2) xxxxx.xx                         99999.99                        -99999.99 双精度:double数值类型 的宽度 是显示宽度,不能限制给字段赋值的大小,大小由类型决定赋值 宽度为节省空间宽度不够时:默认用空格补位zerofill #宽度不够用零补位mysql> create table t24(id int(3) zerofill,age int(5) zerofill);Query OK, 0 rows affected (0.40 sec)mysql> insert into t24 values(2,2);Query OK, 1 row affected (0.16 sec)mysql> select * from t24;+----------+------------+| id        | age       |+----------+------------+|  002     |   00002    |+---------+------------+1 row in set (0.00 sec)mysql> desc t24;

字符型: 定长 变长 大文本

     char       varchar blob/text定长长度固定  空间换时间变长长度随字符大小而改变    时间换空间

日期时间型

年 yesr  YYYY            1901-2155 可以使用两位数字给yesr赋值日期 date     YYYYMMDD时间 time     HHMMSS日期时间datetime    YYYYMMDDHHMMSS  如果不给其赋值 默认赋值NULLtimestamp   YYYYMMDDHHMMSS  如果不给其赋值 默认自动赋值当前时间使用时间函数给日期赋值now()       #当前时间mysql> select now();+-------------------------------------+| now()                                  |+-------------------------------------+| 2017-12-20 03:49:11           |+-------------------------------------+1 row in set (0.00 sec)year()  指定日期中的年    mysql> select year( now());month() 指定时间中的月份day()       指定时间中的日子date()  指定时间中的日期time()  指定时间中的时刻insert into t10 values ('tom',19,year(now()), time(now()),date(now()),now());

枚举型:字段的值只能在列举的范围内选择

字段名  enum(值列表) 单选字段名  set (值列表) 多选

字段约束条件

设置字段约束条件:作用Null  允许未空,默认设置NOT NULL 不允许为空Key     索引类型Default 设置默认值,缺省为NULLmysql> create table t13 (        -> name char(10) not null,        -> age tinyint default 23,        -> sex enum('man','woman') not null default 'man'        -> );Query OK, 0 rows affected (0.37 sec)mysql> desc t13;

修改表结构

alter table 表名 执行动作;

添加新字段

add 字段  类型(宽度)约束条件;         #添加末尾add 字段  类型(宽度)约束条件 first;       #添加开头add 字段  类型(宽度)约束条件 after 字段名;   #添加到某个字段后mysql> alter table t11 add name char(10) first;mysql> alter table t11 add mail varchar(30) default 'stu@tedu.cn';mysql> alter table t11 add class char(10) default 'nsd1709' after name;

删除字段

drop 字段名mysql> alter table t11 drop party,drop mail;不修改的地方照抄原有的

修改字段类型

modify 字段  类型(宽度)约束条件;mysql> alter table t11 modify name varchar(15) ;修改字段名change 源字段名 新字段名  类型(宽度)约束条件;mysql> alter table t11 change meetting party timestamp not null;修改表名mysql> alter table t11 rename stuinfo;mysql> use information_schema;过滤某个数据库的约束mysql> select * from table_constraints where table_schema='数据库名';
0