玩转mysql(入门级练习)

来源:互联网 发布:vue weixin js sdk 编辑:程序博客网 时间:2024/05/20 19:18

大笑励志做一个开心滴程序猿。

mysql练习:

1.mysql安装成功后的进入方式

方式1:点击开始-》所有程序=》mysql=》mysql server5.0-->Mysql Command Line Client 点击提示Enter password :root回车

即可进入Mysql操作界面。

---------------------

show databases;//显示所有的数据库

use test;//选择并使用test数据库

show tables;//显示test库中所有表

exit 退出

---------------------

方式2:开始-windows+R ->cmd回车

cd\进入c盘根目录

cd切换到:

C:\Program Files\Mysql\mysql Server 5.0\bin>

在此目录中采用

mysql -u root -p(mysql -u 用户名 -p 密码 是连接数据库服务器的命令。要求你输入自己连接数据库的用户名和密码。考虑密码如果直接明文写在这条命令行上,有些不方便(怕被别人看到),可以像你写的那样,只输入:mysql -u 用户名 -p 然后回车,此时提示你输入密码,这时候输入的密码就不再是明文的了。

mysql -h 127.0.0.1 -u root -p root

回车

提示Enter password :root回车

即可进入Mysql的操作界面;

show databases;//显示所有数据库

use test ;//使用test数据库

show tables;//显示test库中的表

exit退出

---------------------

第三种方式:

开始--运行输入cmd回车

cd\进入c盘根目录

cd切换到:c:/Program Files\Mysql\mysqlServer 5.0\bin>

在此目录中采用mysql -u root -p 数据库名称

mysql -h 127.0.0.1 -u root -p root 数据库名称

回车

2.设置密码:

当用户没有设置密码的时候:

mysqladmin -uroot -password ab12

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

当用户存在密码时:

修改密码:

cd\进入c盘根目录

cd切换到:

C:\Program Files\Mysql\mysql Server 5.0\bin>

采用命令:

mysqladmin -uroot -proot password 123

回车后密码更新为123;

------------------------------------------------------------------------------------

3.新增用户:

(和上面不同,下面的因为是mysql环境中的命令,所以后面带一个分号作为命令结束符)

格式:grant select on 数据库.*to用户名@登录主机 identified by "密码"

第一种:

增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询,插入,修改,删除的权限

首先用以root用户连入MYSQL ,然后键入一下命令:

grant select ,insert updata  ,delete on *.*to test1@"%" Identified by "abc"

但是增加用户是一个危险的事,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据库可以为所欲为

解决方法:1.增加一个test2的密码为abc 让他只可以在localhost上登录,并可以对数据库mydb进行查询,插入,修改,删除的操作(localhost指本地主机,即mysql的数据库所在的那台主机),这样用户即使知道test2的密码,也无法从Internet上直接访问数据

mysql->grant select ,insert,updata,delete on book.*to test2@localhost Identified by "abc";

如果你不想test2有密码,可以再打一个命令把密码删掉

mysql->grant select ,insert,update ,delete on book.*to test2@localhost Identified by"";

下面来看看mysql中有关数据库方面的操作。注意:必须首先登陆到MYSQL 中,一下操作都是在mysql的提示符下进行的,而且每一个命令以分号结束。

desc admin;//显示表的结构,字段,字段类型  字段是否为null 是否是主键  额外信息等。

create database    数据库名字;//创建数据库

show database;//查看创建数据库是否成功,显示所有数据库的名

use 数据库的名;//使用此数据库

show tables;// 查看此数据库中的所有表的名称

--------------------------------------------

4.表的概念

数据库中包含一个或多个表;

表:是行和列组成的,行称为记录,是组织数据的单位;

列被称为字段,每一个列表示记录的一个属性。

注意事项:

在特定的表中,列的名称必须是唯一的,但相同列名可以在数据库中不用的表中使用

在表中的行与列的次序是任意的

表:是数据的集合,是用存储数据和操作数据的逻辑结构。

案例:

学生信息表  =====》类

学号   姓名 性别班级编号 籍贯年龄 ===>学号 姓名 性别  班级编号   籍贯  年龄

0101 MM 09 BJ 20 =》类的一个示例|对象 都对数据库中一条记录

5.数据类型

字段的数据类型:

MYsql 中提供了三种数据类型

1:数值

2:字符串

3:日期

数值:tinyint 非常小的整数 -128 -127 1个字节

smallint      较小的数 -2的15次方--2的15次方减去1   2个字节

mediumint中等大小的整数   -2的23次方-   -2 的23次方减去1    3个字节

int              标准整数       -2的31次方-2的31次方减去1 4个

big int 大整数-2的63次方   -2的63次方-1 8个

float  4个字节

double 8个字节

字符型:

char   CHAR列的长度固定为创建表的声明的长度,长度可以从0到255之间

varchar  列中的值可以变长字符串,长度可指定到0到65,535之间

binary

blod:最大限制到65k字符

  ·mediumblob:限制到16M字节

  ·longblob:可达4GB

  在每个MySQL的文档(从MySQL4.0开始)的介绍中,一个longblob列的最大允许长度依赖于在客户/服务器协议中可配置的最大包的大小和可用内存数。

  你可能对在BLOB中存储大型文件非常谨慎,但是请放心使用,MYSQL提供了这样的灵活性!最大包的大小可容易地中的在配置文件中设置。例如:

  一,Windows通过文件my.ini (在系统盘)

  [mysqld]

  set-variable = max_allowed_packet=10M

  二,linux通过etc/my.cnf

  [mysqld]

  max_allowed_packet = 16M

  你能指定几乎任何你需要的大小。默认是1M。

TEXT:  有四种text类型:tintyext.  text mediumtext   longtext

这些对应4种blob类型,有相同的最大长度和存储需求

set成员的set 列值时各成员之间用逗号(‘,’)间隔开

enum是一个字符串对象,其值来自表创建时在列规定中显示枚举的一列值

 在某些情况下,ENUM值也可以为空字符串('')或NULL:

  ·     如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不同,该字符串有数值值0。后面有详细讨论。

  ·     如果将ENUM列声明为允许NULL,NULL值则为该列的一个有效值,并且 默认值为NULL。如果ENUM列被声明为NOT NULL,其默认值为允许的值列的第1个元素。

  每个枚举值有一个索引:

  ·     来自列规定的允许的值列中的值从1开始编号。

  ·     空字符串错误值的索引值是0。这说明你可以使用下面的SELECT语句来找出分配了非法ENUM值的行:

  日期类型:

  DateTime  YYYY-MM-DD HH:MM:SS 从1000-01-01 00:00:00 到9999-12-31 23:59:49

  date    YYYY-MM-DD 从1000-12-31 至 9999-12-31

  timestamp  YYYYMMDDHHMMSS

  time    HH:MM:SS

  year    YYYY

//通过mysql.chm3教程中的3.3.2创建表pet

7。创建表:

 需要考虑:表包含哪些内容。 列===> 行 记录

  宠物表 pet 包含字段 列-->列的名称 列的数据类型  列的长度  列是否为空 列是否为主键 是否使用约束

  宠物的名称:name  varchar     20    null         

  宠物的主人:owner  varchar     20    null

  宠物的性别:sex   char      1

  宠物的种类:species varchar    20

  宠物的出生日期:birth date    

  宠物的死亡日期:death date    

  创建数据库

create databases aijava;

show databases;

use aijava;

----------------create table 表名(

字段名称数据类型  约束条件,

字段名数据类型 约束条件,

字段名数据类型 约束条件

);

创建pet表命令如下

mysql-》create table pet

->(

name varchar(20),

owner varchar(20),

species varchar(20),

sex char(1),

birth  date,

death date

->);

Query OK, 0 rows affected (0.08 sec)

show tables;//查看表是否创建成功

desc pet;//查看表结构

select*from pet ;//查看表中的所有数据

DML语句insert

语句形式:insert into table_name(column_name[,...n] values(val1,val2,...n));

字符串类型”引起了date“

//插入数据到宠物表

//插入一条完整记录

mysql>insert into pet(name,owner,species,sex,birth,death)

->values('Claws','cat','m','1994-03-17',null);

//插入一条完整记录

mysql>insert into pet values('Buffy','Harold','dog','f','1989-05-13',null);

//插入一条记录中部分字段数据

mysql>insert into pet (name ,owner,species,sex,birth)

->values('Fluffy','Harold','cat','f','1993-02-04');

mysql>insert into pet(name ,owner)values('benben','redarmy');

//插入记录时观察日期的格式类型

 mysql> insert into pet values('fang','benny','dog','m','19900827',null);

  mysql> insert into pet values('Bowser','Diane','dog','m','1979.08.31','1995/07/29');

  Date日期类型插入可以按照  'YYYY-MM-DD'或'YY-MM-DD'格式的字符串。这里也允许使用“不严格的”语法。例如,'98-12-31'、'98.12.31'、'98/12/31'和'98@12@31'是等价的。

  DateTime日期类型插入可以按照:'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'格式的字符串。允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等价的

批量插入:

mysql>insert into pet

->values('Chirpy','Gwen','bird','f','1998-09-11',null),

->('Whistler','Gwen','bird',' ','1997-12-09',null);

SQL:

sql被称为结构化查询语言(Stuctured Query Language)是操作和检索关系型数据库的标准语言

sql分类:

数据定义语言(DDL),例如CREATE.DROP .ALTER等语句。DATA Definition Language

它最基础的SQL 它用来创建数据库 修改 或者删除数据库中的各种对象。

数据查询语言,例如:select    

数据操作语言,例如:insert    update   delete   

数据控制语言,例如:grant  revoke commitrollback 

主要用来执行有关安全管理的操作。

sql语言包括三种主要程序设计语言类型的语句:数据定义言语,数据库操作言语,数据库控制言语











0 0