myql---DAY1

DAY 01

1、了解提供数据库服务的软件有哪些

主流:Oracle       sql-server     mysql       DB2

Postgresql     Sybase      access      vf

商业软件:Oracle   sql-server   DB2

开源软件:mysql    Postgresql

服务运行的平台:LINUX  、Windows

跨平台:Oracle  DB2  mysql postgresql

既跨平台又开源的软件:mysql

2、数据库服务应用在哪里

购物网站、论坛、银行、证券公司、购票系统

网站论坛通常用mysql

国家机构等通常用Oracle

Mysql+web (LAMP: Linux  apache mysql  php   LNMP:Nginx)

mysql  主要和网站一起用。

3、mysql软件有哪些优点

1)适用于中小规模、关系型数据库管理系统(100M左右、表表之间有联系,非关系型数据库-NoSQLogic)

2)跨平台,支持AIX FreeBSD  HP-UX  Linux Windows等多种操作系统

3)使用C和C++编写你,支持多种编译器,保证源代码的可移植性(make)

4)为多种编程语言提供API,支持Python  Java  Perl  PHP等脚本语言

广泛应用在中小型的网站  (API 访问程序接口)

关系型数据库系统?(数据存放在数据库里要遵循数据库存储数据的格式)

ER 模型  (实体-关系)模型

Entity-Relationship  Model

非关系型数据库 nosql  (LDAP)

4、搭建数据库服务器

rpm包: rpm  –ivh  xxx.rpm  -Uvh  升级

yum  –y  install xxx   功能已经集成好

源码包:可以定制功能./configure  选项     make     make  install

在ip地址是192.168.1.1服务器上搭建数据库服务

软件包名: rpm –ivh mysql-server mysql

mysql-server :服务端

mysql客户端,提供命令工具

mysql-devel 用来开发mysql程序的文件

rpm -qi  软件包名  查看详细信息

启动服务:service mysql start

进程名:mysqld

进程的所有者,所属组:mysql  mysql   (源码包安装时需要自己设置)

端口号:3306    netstat -naptul | grep :3306

传输协议:TCP

主配置文件:/etc/my.cnf

数据库目录:/var/lib/mysql

解压安装包                     tar-xvf MySQL-5.6.15-1.el6.x86_64.rpm-bundle.tar

安装mysql          rpm -Uvh MySQL-*.rpm

启动命令                  service mysql start|stop|status|restart

监听的端口号  3306

进程名  mysqld

进程所有者  mysql

数据传输协议  tcp

数据库目录  /var/lib/mysql/

连接数据库服务器

*默认情况下,只允许数据库管理员root从数据库服务器本机登录。

rpm方式安装mysql数据库时,系统生成密码存放的位置/root/.myswl_secret

第一次登陆mysql数据库时,需更改密码更改密码命令是set password for [email protected]”localhost”=password(“123456”)

命令格式

mysql  -h数据库服务器ip或主机名   -u用户名   -p密码    [数据库名]

查看默认密码

[[email protected] 桌面]# cat/root/.mysql_secret

# The random password set for the root userat Tue Jul 29 09:58:03 2014 (local time): 8dP009F6

[[email protected] 桌面]#

修改密码

登录命令mysql  -hlocalhost   -uroot   -p8dP009F6

修改密码mysql> SET PASSWORD FOR‘root‘@‘localhost‘=PASSWORD(‘123456‘);

mysq>quit;

[[email protected] ~]# mysql -hlocalhost-uroot -p123456

mysql>

默认数据库解析

登录数据库服务器—>选择一个库—>选择一个表—>把数据插入到表里

登录数据库服务器:mysql  连接数据库的工具

which mysql

rpm –qf /usr/bin/mysql

-h数据库的ip地址/名 -uroot  -p密码

root是数据库的管理员,默认数据库管理员登录本机数据库服务器不需要密码

mysql  –hlocalhost  –uroot -p密码

=mysql

mysql 库名   登录到指定的库

mysql   -h数据库服务器的主机名或ip   -u用户名    -p密码   [数据库名]

SQL语句:结构化查询语言,以;结尾

select user() ; //查看当前登录数据库的用户  用户名@客户端地址

select database();  //显示当前所在的库

use test;    //选择test库,use切换库命令

showtables;   //查看当前所在库下的已有的表,每个表占一行

select * from 表名; //查看指定表中的所有记录 ,\G换行显示

select 字段名 from 表名;//查看指定字段

showdatabases; //显示数据库上已有的库,首次启动时创建默认库

use information_schema 可以不以;结尾

information_schema:虚拟库,存放的数据不占用物理磁盘空间,存放在当前的物理内存,记录当前数据库服务器上已有库和表的信息,以及数据库运行的参数信息。

#保存在当前数据库服务器已有的库和表的统计信息

#不占用物理磁盘空间其内的数据保存在系统内存里

mysql:授权库

默认数据库管理员只能在数据库服务器本机登录,且没有密码,很重要,工作中要备份

 (用此库里记录的信息,验证登陆服务器的用户)

#授权库

#保存用户的授权信息

#占用物理存储空间

performace_schema:保存数据库服务器运行时的参数信息,占用物理磁盘空间。

test:公共库,(默认是一个空库,没有数据)可以连接到数据库的用户对此库拥都有完全权限。占用物理磁盘空间。

数据库服务器上的库以文件夹的形式存放在数据库目录下,文件夹名与数据库名同名;表以文件的形式存放在自己所在的数据库对应的文件夹里,文件名与表名相同,默认情况下mysql会把一个表的数据用三个文件来保存

库和表以文件的形式保存在数据库目录下

数据库目录默认在 /var/lib/mysql

5.数据库管理

create database 数据库名;               //创建数据库。所有者和所属组为mysql

show databases;                                  //显示数据库上已有的库

drop database 数据库名;                  //删除数据库

drop table 数据库名.表名;               //删除表

use 数据库名;                                    //切换数据库

delete from 表名;                           //在当前库中删除表记录

数据库名的命名规则:数字、字母、下划线,区分大小写,不能用纯数字,具有唯一性,不能用SQL的关键字,不能用特殊字符,要有标识性

     注意/var/lib/mysql目录中创建一个目录,也是创建了数据库,权限是root,默认不能建表

表名字段名的命名规则和数据库的命名规则一样

建表要保存到库里

6、表管理

      Use 库名

create  table  表名(                      //  在当前库中创建表

字段名  字段类型(宽度)约束条件,

字段名  字段类型(宽度)约束条件,

字段名  字段类型(宽度)约束条件,  //(宽度)约束条件可选的

);

create table  数据库名.表名(             //在指定库创建表

字段名  字段类型(宽度)约束条件,

字段名  字段类型(宽度)约束条件,

);

desc  表名;    //查看表结构,表在当前库

desc 数据库名.表名

mysql> insert  into 表名(字段名1,字段名2)  values //给字段插入记录

mysql> (字段名1的值,字段名2的值),   //要插入的值

mysql> (字段名1的值,字段名2的值), //要插入的值

mysql> (字段名1的值,字段名2的值); //要插入的值

//顺序项表中插入值时,可省略字段名,字符型的字段用双引号

 

例:

mysql>insert into webdb.regtab (age) values (88); //给字段age插入值88

select * from 表名;   //查看表记录

select now();                       //查看系统时间

select month(now());  //查看月份

select 字段名 from 表名;  //查看指定字段mysql的数据类型

1)数值类型

(年龄、体重、身高、工资、成绩):

整数型(小整数tinyint 大整数smallint 极大整数bigint)即没小数点

浮点型(单精度float(n,m) n表示数字位数个数,m表示小数位个数

双精度 double(n,m) )小数点

小整形默认为有符号的、宽度4,unsigned指定无符号、宽度默认3

指定范围符号格式:

create table  dd字段名  字段类型(宽度) unsigned;

数值类型的范围默认是无符号的,如果更改无符号,后面加unsigned

释例:create tables  dd (name  tinyint unsigned);

 数值类型的宽度为显示宽度,不能限制当前字段能够存储多大的数值,能存多大的数值由当前字段的类型决定。

显示宽度不等于存储数值,存储数值取决于“范围”

设置宽度是为了节省物理内存

 

如:字段类型为int(3),不够显示宽度时,默认用空格补位,大于宽度3时正常显示,如果要使用零补位,则使用zerofill

示例:createtable   student.t1 (id tinyint unsignedzerofill); //student库下建表t1 ,t1中字段名为id的为微小整数,使用无符号且值小于默认长度时,用零补位。

例子:

use studb;

createtable studb.game(level tinyint);

>insertinto 表名(字段名列表)

>values

>(字段值列表);

2)字符串类型(名字、家庭住址):

定长char: 0-255字节,当小于指定宽度时,用空格补齐默认为1

变长varchar:0-65535字节,当小于指定宽度时,根据实际长度占用空间。L+D,节省空间,开销大

字段名         类型(宽度)

Name                   char(3)

Name                   varchar(3)

Create             tabletest.t5(name1 char(3),name2 varchar(3));

Desc                t5

Insert into t5

Values

(“jim”,”jim”)

mysql> delete from t1;                                                       //删除表内所有记录

Query OK, 0 rows affected (0.02 sec)

字符类型与数值类型宽度的区别

数值类型是宽度是显示宽度与赋值宽度无关,若超出宽度则显示

字段能存储多大数值由字符类型决定。

当字段值不足显示位数时。默认使用空格在数字的左边补足显示位数。

当字段值超出显示位数时,正常显示

Int                    数值类型指定宽度作用:

指定宽度使用指定宽度

不指定宽度显示11位

ZEROFILL 用0进行补位

浮点型???

Create tablet9(

Name varchar(5)

Id int(3)

);

Insert into t9

3)日期时间类型(生日、出生年份、注册时间、开会时间……):

year   YYYY

1个字节范围1901-2155

用两位给year赋值时,

01-69视为2001-2069,

70-99视为1970-1999

两位时不能为00

日期date  YYYY-MM-DD

4个字节范围0001-01-01  9999-12-31

小时time  hh:mm:ss

3个字节格式HH:MM:SS

日期时间datetime  YYYY-MM-DD hh:mm:ss

                     timestamp YYYY-MM-DD hh:mm:ss

 

datetime8个字节,范围1000-01-01 00:00:00  9999-12-31 00:00:00  不赋值,为空

timestamp 4个字节 范围1970-01-01 00:00:00  2073-12-31 00:00:00

不赋值时,默认用系统当前时间赋值

手动添加时,值够位数时,系统自动分割

只存与字段类型匹配的部分

now() 获取开始执行函数时的系统时间

sysdate() 执行时动态获得系统时间

sleep(N) 休眠N秒

curtime() 获取系统当前时间

curdate() 获取系统当前日期

month() 获取指定时间中的月份

date() 获取指定时间中的日期

time() 获取指定时间中的时间

year() 获取指定时间中的年份

day (now()) 获取当前系统时间中的天

使用mysql

4)枚举类型

(性别、爱好):字段的值只能在列举的范围内选择

单选 enum(“值1”,”值2”,”值n”)  赋值时可用序号,字段的值只能在列表中选一个可以用数字表示,1代表第一个值,2为第二个值

多选 set(“值1”,”值2”,”值n”) 字段的值在列表里选择一个或多个

mysql> create table t16(name varchar(10),sexenum("boy","gril","no"),likesset("game","film","A","girl"));

Query OK, 0 rows affected (0.03 sec)

约束条件:

Null : 准许为空,默认设置  not null 可设置不允许为空

Key : 索引类型(是否主键)

Default : 设置默认值,默认情况下为NULL, 可用default在创建表时设置默认值

Extra:另外,特殊的约束条件

mysql> createtable yy(name char(3) not null default "aa");   //给表yy的字段name 设置了约束NULL为not null  约束Default默认值为aa

字段名|

字段类型|

字段是否允许为空默认值YES 允许字段赋空置

not null

name char(3)not null

是不是key字段

字段的默认值    默认值 null 当不给字段赋值时,使用默认值给字段赋值

age int(3) not null default 21

sex enum(“m”,”w”) not nulldefault “m”

字段的额外设置

空 null NULL

例外:selinux 主要配置文件 /etc/sysconfig/selinux

将此项设置为 SELINUX=disabled  代表不启用

防火墙iptables 配置文件为 /etc/sysconfig/iptables

Iptables –F 删除防火墙策略

service iptables save s(保存服务策略)

注释:删库时,有下面提示代表,studb库下有非数据库类型的文件,删除这个文件就可以把库删掉了

mysql> dropdatabase studb;

ERROR 1010(HY000): Error dropping database (can‘t rmdir ‘./studb/‘, errno: 17)

 

 

创建学生信息表字段如下:给字段设置合理的字段类型

stu_id    name   sex     age     class   mail   xuefei    start_day   

 

学号     姓名    性别   年龄    班级     邮箱   学费    入学时间

 

查看表结构

插入2条学生信息(自己和同桌的)

查看表记录

/c”

 

 

 

create table test1.t2(

     stu_id tinyint(1) not null,

     namechar(8) not null,

     sex enum("boy","girl") notnull default "boy",

     age tinyint(1) not null default 25,

    classchar(15) not null default 1405,

    mailchar(30) not null,

xufei smallint(1) not nulldefault 16800,

start_day date not null

);

 

mysql> desc t2;

+-----------+--------------------+------+-----+---------+-------+

| Field     |Type               | Null | Key | Default| Extra |

+-----------+--------------------+------+-----+---------+-------+

| stu_id    |tinyint(1)         | NO   |    | NULL    |       |

| name      |char(8)            | NO   |    | NULL    |       |

| sex       |enum(‘boy‘,‘girl‘) | NO   |     | boy    |       |

| age       |tinyint(1)         | NO   |    | 25      |       |

| class     |char(15)           | NO   |    | 1405    |       |

| mail      |char(30)           | NO   |    | NULL    |       |

| xufei     | smallint(1)        | NO  |     | 16800   |      |

| start_day | date               | NO   |    | NULL    |       |

+-----------+--------------------+------+-----+---------+-------+

8 rows in set (0.00 sec)

 

修改表结构

 

**修改表结构时,受表中已有记录的限制

**所有表结构一定要在插入表记录之前定义好

Alter tabale 数据库名.处理动作

 

处理动作:

添加字段   add 字段名类型(宽度)约束条件,add 字段名类型(宽度)约束条件;

First 添加在所有表上方。

After name  添加在after字段下面

 

删除字段  drop             字段名,字段名……;

修改字段类型alter  table  数据库名.表名  modify  字段名 类型(宽度)约束条件

              不变的部分原样写上 修改部分写新的设置就可以

 

更改字段名

 

 

alter table test1.t2 add shouji char(11) not null ,add zhuanye char(30) not null default "lunux";

 

mysql> alter table test1.t2 drop shouji;

 

alter table test1.t2 modify zhuanye  char(30) default "c";

 

时间: 2024-08-10 21:15:10

myql---DAY1的相关文章

学习Python的day1

自己以前从来没有写博客的想法,但是学Python,里面的老师也说了,写博客可以加深自己的记忆,也能回顾内容.还能给别人参考.挺值的.2017-09-16 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Py

雅礼集训——day1、day2

day1: 嗯上午考试拿了100分.第一题40,第二题60.看完题的时候我就觉得第二题的部分分是最好得到的,因为数据范围只有300,而且一眼看上去就是网络流的二分图多重匹配模型?然后就建了个网络流写了些,期望得分是70分,但是第1组数据有点劲,被卡掉了,就拿了60分.正解是map+set的贪心...并不会STL 写完T2去看T1,先用DFS乱搞了一下,结果样例都没过去,我手推了一下样例,得到了一个公式,就是从一个点出发需要加上的边数=这个点通过DFS能够遍历到的点的个数-与这个点直接相连的点的个

Linux学习日志day1——无人值守系统安装DHCP+TFTP+PXE+Kickstar

Linux学习日志day1--无人值守批量系统远程网络安装(DHCP+TFTP+PXE+Kickstar)                                         --作者:江信瀚 服务器环境介绍: 主机名:workstation.example.com 关闭SElinux以及防火墙 虚拟机:VMware(关闭了VMware的DHCP服务) 网卡配置: 静态IP获取! IPV6全部都删除,因为根本用不到 子网IP可以在VMware中设置 8.8.8.8是谷歌的DNS服务器

MYSQL养成记-MYSQL基础增强(Myql函数)

MYSQL基础增强(Myql函数) 在这里只介绍一些常用的,比较新颖的: 字符串函数: CONCAT://字符串连接函数mysql> SELECT CONCAT('My', 'S', 'QL'); -> 'MySQL' mysql> SELECT CONCAT('My', NULL, 'QL');//与null连接会变null -> NULL mysql> SELECT CONCAT(14.3); -> '14.3' CONCAT_WS://含分隔符的字符串连接mysq

#6030. 【雅礼集训 2017 Day1】矩阵

#6030. 「雅礼集训 2017 Day1」矩阵 题目描述 有一个 n×n  的矩阵,每个位置 (i,j) 如果是 . 表示为白色,如果是 # 表示为黑色. 初始时,每个位置可以是黑色或白色的,(i,j)  位置的值会作为 ai,j 给你. 现在有一种操作,选择两个整数 i,j∈[1,n],记 (i,1),(i,2),…,(i,n) (i, 1), (i, 2)的颜色为 C1,C2,…Cn ??,将 (1,j),(2,j),…,(n,j)  的颜色赋为 C1,C2,…,Cn ??. 你的任务是

ZJOI2017 day1滚粗记

这几天去温州作为外省选手参加了$ZJOI day1$.打了几天的酱油,考试也滚粗了.. $day -2$ 中午从学校出发,坐飞机去温州.到了温州以后吃完晚饭就回宾馆.把一直想做的糖果公园做完了以后就堕落了一晚..玩了好久.. $day -1$ 上午听周子鑫大佬讲搜索.前几题还挺简单的,开始讲$dancing-links$以后就有点懵逼了.原理大概还是听懂了,但是完全不会实现..然后讲了很多玄学搜索题,感觉后面讲的那几题都有点懵懵懂懂,讲得好快难以接受.. 下午开始就正式进入懵逼阶段了.下午讲课一

day1作业--登录入口

作业概述: 编写一个登录入口,实现如下功能: (1)输入用户名和密码 (2)认证成功后显示欢迎信息 (3)输错三次后锁定 流程图: readme: 1.程序配置文件: 黑名单文件blacklist.txt(可以存在,可以不存在) 白名单文件whitelist.txt存在,内容如下: zhangsan,1234 wang,1234 ding,1234 2.输入密码的时候不显示 代码: 1 #coding=utf-8 2 import os 3 import getpass 4 5 BlackLis

day1 login

使用流程: 1.程序启动后,显示欢迎信息,提示用户输入用户名: 2.判断用户是否存在,不存在则提示重新输入,或者关闭程序:客户存在则提示客户输入密码: 3.判断密码是否正确,如果不正确则提示用户重新输入,输入第三次依然错误,则锁定该账户: 4.密码输入正确时,后台进程判断用户是否被禁用,“禁用”时提示用户联系管理员:没有禁用则显示登录成功欢迎信息. 系统设计: (循环登录次数增加,来禁用账户,试了 n 次,还在研究:初步实现用两个文件来实现用户验证) 1.本程序运行需要依赖两个基础文件:user

遥望布达拉——DAY1 成都-雅安

由于昨晚讨论路线加扯淡睡得比较晚,早上7点才起床,虽然以后几乎每天都这个点起,但相对于今天150km的路程,又是第一天骑需要适应节奏,注定是个悲剧.不过,不用担心,这仅仅是川藏线酸甜苦辣的开始. 先来介绍一下另外4个队友吧 左一老陈:哈尔滨人,工作三年,成熟稳重,身体综合素质较强,请了一个月假出来,骑完就要去非洲出差了,要被晒成黑球了,哈哈 右三老彭:湖北人,武汉理工大学材料学研一,骑行经验较丰富,竟然背着导师偷偷跑出来,胆儿真肥.不过他到理塘就转去稻城亚丁了,和我们只是顺路10天 右二小鹏:福

SHTSC2015 Day1

作为一名蒟蒻,今天本来就是抱着打酱油的心情去的,当然结果我依旧是打了一次酱油. 不过这个酱油打得还是要有收获的,虽然在成绩上远远落后于众位大神,但是作为一名新手还是能够从比赛中收获到不少考试经验,而这对往后的各种比赛都是很有帮助的.尤其是像信息学这种普及范围不是特别广的科目,平日里官方举办的线下赛很少,所以多多参加像省选这样的比赛就很重要了.我也感受到了上海主办方老师对于省选赛设立五次考试的良苦用心,而且费用竟然只要100元简直良心啊. 先说一下刚到考场发生的事情,简直是运气不好,我的机子鼠标没