mysql的使用_mysql的使用

数据库操作:

这里我们先修改一下windows下的my.ini文件,我的数据库安装在C:\ProgramData\MySQL\MySQL Server 8.0,配置文件在这里,编辑该文件增加下面的行:

auto-rehash #添加auto-rehash

重新登录:mysql -u root -p --auto-rehash

1)创建数据库和删除数据库(win+r进入dos,然后mysql -uroot -p密码进入数据库操作窗口)

使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库,root用户拥有最高权限,可以使用 mysqladmin 命令来创建数据库:

mysqladmin -u root -p create mytest#创建一个名字为mytest的数据库

#此时/usr/local/mysql/data/mytest目录就是创建的新的数据库

#该mytest目录下便存在一个文件:db.opt

#或者登录mysql后执行

CREATE DATABASE 数据库名;

#如果想删除这个创建的数据库,有三种方法可选择

#一:在bash下直接执行rm

sudo rm -rf /usr/local/mysql/data/mytest#找到创建的数据库所在路径

#二:使用mysqladmin命令

mysqladmin -u root -p drop mytest

#需要输入密码,然后弹出:Do you really want to drop the 'mytest' database [y/N]

#输入y确认即可drop 掉mytest

#三,登录mysql后

mysql > drop database mytest;

2)显示数据库信息

#先执行mysql登录用户mysql

SHOW DATABASES;

#使用某一数据库,USE 数据库名字

USE RUNOOB;

5a1d7b4c4d4123205378a6ad7f0926d5.png

数据表操作

1)查看某数据库下面的数据表

#要先use db_name,进行目标数据库,然后查看某个数据库下的数据表

USE DATABASE_NAME;

SHOW TABLES;

74c8972fc555b505aa613cd16246ba17.png

2)查看某个数据表的结构

DESC TABLE_NAME;

6db124c77b6813cc2c9f1c88178f128b.png

3)创建数据表

mysql> create table runoob_table(

runoob_id INT NOT NULL AUTO_INCREMENT,

runoob_title VARCHAR(100) NOT NULL,

runoob_author VARCHAR(40) NOT NULL,

submission_date DATE,

PRIMARY KEY (runoob_id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

show tables;

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。

AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。

ENGINE 设置存储引擎,CHARSET 设置编码

4)查看数据表内容

select * from runoob2_tbl;

a8c0a6850b065068b89a78b102aea199.png

select submission_date from runoob_tbl_clone where runoob_title='learn R' and runoob_name='xiaoyang';

7aa1e44583b386bc2949ff9b33d5e320.png

5)删除数据表

#直接删除数据表

drop table runoob_table;

#删除数据表中的某条记录

select * from runoob2_tbl;

delete from runoob2_tbl where runoob_title='learn jsp';

select * from runoob2_tbl;

#清空表,保持表结构

truncate runoob2_tbl;

select * from runoob2_tbl;

92d35219564b390e90070c7f2253cfbd.png

318154db5ab6e0e20ef8be387908a681.png

8d751bffc583287af3fffa0a6f58977e.png

1、当你不再需要该表时, 用 drop;

2、当你仍要保留该表,但要删除所有记录时, 用 truncate;

3、当你要删除部分记录时, 用 delete。

6)插入数据

#INSERT INTO table_name ( field1, field2,...fieldN ) VALUES( value1, value2,...valueN );

#如果数据是字符型,必须使用单引号或者双引号,如:"value"

insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES(8, NULL, 'learn ML', 'xiaohong');

insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES(7, NOW(), 'learn PERL', 'xiaoxiao');

#当然也可以一次插入多条数据

insert into runoob_tbl_clone (runoob_id, submission_date, runoob_title, runoob_name) VALUES (9, NOW(), 'learn hadoop', 'xiaoli'), (10, NULL, 'learn AI', 'HH') ;

ccbf20a5ca20d3dad5c4dfeb1eb1de97.png

7)从文件直接导入数据库

如有一文件input:

3d1eeedff44544d1aabbe4cc65729ee7.png

load data local infile '/path/input' into table runoob_tbl_clone FIELDS TERMINATED BY ',' ;

#如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。

load data local infile '/path/input' into table runoob_tbl_clone FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';

#两个命令的 FIELDS 和 LINES 子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,FIELDS 子句必须出现在 LINES 子句之前。

a9b04f23da3af8b7df63f0346fa1e0ba.png

如果load本地文件提示: The used command is not allowed with this MySQL version,则我们先执行:mysql> SETGLOBAL local_infile =true;

或者:mysql -u root -p --local-infile somedatabase

8)存储过程

a)一种用来处理数据的方式,存储过程是一种没有返回值的函数

b)存储过程和函数是事先经过编译并存储在数据库的一段SQL语句的集合,调用存储过程和函数可以简化开发人员的许多工作,减少时间在数据库和应用服务器直接的传输,能够提高数据处理的效率

c)和函数的区别在于存储函数必须有返回值,而存储过程没有返回值,但是存储过程的参数可以使用IN,OUT,INOUT类型(可以通过OUT和INOUT向外传出数据),而存储函数的参数只能是IN类型的,如果有函数从其他类型的数据库迁移到MySQL,那么就可能需要将函数改为存储过程

实例:向t_copy表插入100个用户(总不能调用insert into 100次吧?)

创建表

CREATE TABLE t_pro(

id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,

NAME VARCHAR(50)

)CHARSET utf8;

我们先插入三条数据:

insert into t_pro (id, NAME) VALUES(1, 'user1'),(2,'user2'),(,us3,'user3');

67d83bfab8e832d3aef0eea778a6d392.png

定义存储过程:

DELIMITER $$

CREATE PROCEDURE pro_copy()

BEGIN

SET @i=4;

WHILE @i<=100 DO

INSERT INTO t_pro(NAME) VALUES(CONCAT("user",@i)); --拼接USER 和i值

SET @i=@i+1; --防止成为死循环

END WHILE; --结束循环

END $$ --结束自定义结束符

DELIMITER ;

ce55aa1b4bfa79e6f42d263b6d41dee0.png

查询存储过程:

show create procedure pro_copy\G

8d7e59f319f36832fab59a4fab308871.png

调用存储过程:

call pro_copy();

d933059324da5b3a8581b287a32f7016.png

再次查询表:

select * from t_pro;

dbabd95f7b7ae11c93e6fcc533851132.png

9)查询一个数据表的记录总数

首先desc我们可以看看字段名,然后使用count来查询记录总数

select count(field_name) from table_name;

52e45fcc18a960f6a55077a8604c81b0.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值