mysql的教学_mysql入门教学

最近应部门主管要求,要求部门提高数据库这块的技能,我特地去学习了一下mysql。跟着网站上的教材做了一份mysql的入门教学。好了,废话也不多说了。先在跟着我一起看看mysql吧。

1.连接mysql

连接到本地的mysql,有两种方法

①打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码

3574932.html

②通过开始菜单下的mysql命令行程序,进行进入,只需输入密码即可

3574932.html

如果你想观察另外主机的连接到远程上的mysql,那么使用以下的方法

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -u root -p abcd123;

想必大家都看出来是怎么样的一个格式了:

mysql -h(-p之后加上远程主机数据库IP地址)

-u(-u之后加上数据库用户名)

-p(-p之后加上数据库密码)

连到本机和远程连接到另外主机的方式是不一样的,请大家注意

注:mysql命令行下,若行尾没有分号,可以多行执行一个语句,在我们想执行较为复杂的sql语句时,这无疑让sql语句看起来更加整洁好用

③.退出mysql命令:exit(回车)

2.数据库操作

2.1:创建数据库

命令:create database 注意!sql语句后面要加;

建立一个名为wyx的数据库

mysql> create database wyx;

3574932.html

例2:创建数据库并分配用户

①CREATE DATABASE 数据库名;

②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';

这句话的意思是我们利用超级用户localhost把SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER 这些sql权限赋予wyx这个数据库

3574932.html

学习到这里,可能有人问每次都有个时间,这个时间就是执行sql的时间拉;然后如果时间很小,则忽略不计,则会显示为0.00 sec;由于我们是对数据库权限进行操作,那么影响的行数肯定是0行拉

③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');

给数据库设置密码

2.2:显示数据库

命令:show databases (注意:最后有个s)

3574932.html

可以看到我新增的wyx数据库了,另外几个数据库

2.3:删除数据库

命令:drop database

删除一个确定存在的数据库

3574932.html

3574932.html

删除一个不确定存在的数据库

mysql> drop database drop_database;

ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist

//发生错误,不能删除'drop_database'数据库,该数据库不存在。

3574932.html

mysql> drop database if exists drop_database;

Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在

3574932.html

mysql> create database drop_database;

Query OK, 1 row affected (0.00 sec)

mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误

Query OK, 0 rows affected (0.00 sec)

3574932.html

2.4:连接数据库

命令: use

例如:如果xhkdb数据库存在,尝试存取它:

mysql> use xhkdb;

屏幕提示:Database changed

有些朋友问到,连接以后怎么退出。其实,不用退出来,use 数据库后,使用show databases就能查询所有数据库,如果想跳到其他数据库,用

use 其他数据库名字

就可以了。

2.5:当前选择的数据库

一些mysql中select的特殊功能

2.5.1显示MYSQL的版本

mysql> select version();

3574932.html2.5. 2. 显示当前时间

mysql> select now();

3574932.html

2.5. 3. 显示年月日

SELECT DAYOFMONTH(CURRENT_DATE);

3574932.html

SELECT MONTH(CURRENT_DATE);

3574932.html

SELECT YEAR(CURRENT_DATE);

3574932.html2.5. 4. 显示字符串

mysql> SELECT "welecome to my blog!";

3574932.html

2.5. 5. 当计算器用

select ((4 * 4) / 10 ) + 25;

3574932.html

3.数据表操作

3.1创建数据表

命令:create table ( [,.. ]);

例如,建立一个名为MyClass的表,

字段名

数字类型

数据宽度

是否为空

是否主键

自动增加

默认值

id

int

4

primary key

auto_increment

name

char

20

sex

int

4

0

degree

double

16

mysql>createtableMyClass(

> id int(4) not nullprimary key auto_increment,

> name char(20) not null,

> sex int(4) not nulldefault'0',

> degree double(16,2));

3574932.html

注意:①not null为非空,若不设置,则默认为空,系统会给他分配另外的内存,一般建议设置为not null,避免不必要的内存浪费

②primary key 主键

③auto——increment 设置为自增属性

④default设置默认值

⑤double(16,2) 处理数据,最多保留2位小数

3.2显示刚刚建的数据库

命令: desc 表名,或者show columns from 表名

mysql>desc Myclass

3574932.html

对于key这个属性,可以提到以下知识点,我还没深入研究,想深入研究的同学自己尝试一下:

使用MySQL数据库desc 表名时,我们看到Key那一栏,可能会有4种值,即' ','PRI','UNI','MUL'。

1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列;

2. 如果Key是PRI,  那么该列是主键的组成部分;

3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL);

4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL。

如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI,那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL。那么此时,显示PRI。

一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键。

一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引,因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值,只要ID+NAME是唯一的即可。

3.3删除数据表

命令:drop table

3.4表插入数据

命令:①给表的特定表列(字段名)插入值

insert into [( ,.. ])] values [( 值1 ), ( 值n )]

②给整表插入数据

insert into  value [(值1),(值n)]

3574932.html

3.5表更新数据

命令:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

例:update Myclass set name='wyx' where id=2;

3574932.html

3.6表删除语句

DELETE FROM 表名称 WHERE 列名称 = 值

4.应用示例

4.1示例一

drop database if exists school; //如果存在SCHOOL则删除

3574932.html

create database school; //建立库SCHOOL

3574932.html

use school; //打开库SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key,

name char(10) not null,

address varchar(50) default ‘深圳’,

year date

); //建表结束

3574932.html

//以下为插入字段

insert into teacher values(,’allen’,'大连一中’,'1976-10-10′)

;

3574932.html

接下来给个练习大家自己做吧。。。

一个建表和建库的练习

drop database if exists school; //如果存在SCHOOL则删除

create database school; //建立库SCHOOL

use school; //打开库SCHOOL

create table teacher //建立表TEACHER

(

id int(3) auto_increment not null primary key,

name char(10) not null,

address varchar(50) default ''深圳'',

year date

); //建表结束

//以下为插入字段

insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10'');

insert into teacher values('''',''jack'',''深圳一中'',''1975-12-23'');

注:在建表中

1、将ID设为长度为3的数字字段:int(3);并让它每个记录自动加一:auto_increment;并不能为空:not null;而且让他成为主字段primary key。

2、将NAME设为长度为10的字符字段

3、将ADDRESS设为长度50的字符字段,而且缺省值为深圳。

4、将YEAR设为日期字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值