如何在ubuntu中 *** 作mysql数据库

如何在ubuntu中 *** 作mysql数据库,第1张

ubuntu下mysql的常用命令,MySQL数据的基本 *** 作命令

一、mysql服务 *** 作

0、查看数据库版本 sql-> status;

1、net start mysql //启动mysql服务

2、net stop mysql //停止mysql服务 

3、mysql

-h主机地址 -u用户名 -p用户密码 //进入mysql数据库

4、quit //退出mysql *** 作

5、mysqladmin -u用户名

-p旧密码 password 新密码 //更改密码

6、grant select on 数据库 to 用户名@登录主机 identified by

"密码" //增加新用户

exemple:

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作

(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据

库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb to

test2@localhost identified by "abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant

select,insert,update,delete on mydb to test2@localhost identified by "";

二、数据库 *** 作

1、show databases; //列出数据库

2、use

database_name //使用database_name数据库

3、create database data_name

//创建名为data_name的数据库

4、drop database data_name //删除一个名为data_name的数据库

三、表 *** 作

1、show databases;//列出所有数据库

use 数据库名;

//到达某一数据库

show tables //列出所有表

create table tab_name(

id int(10)

not null auto_increment primary key,

name varchar(40),

pwd varchar(40)

) charset=gb2312; 创建一个名为tab_name的新表

2、drop table tab_name

删除名为tab_name的数据表

3、describe tab_name //显示名为tab_name的表的数据结构

4、show

columns from tab_name //同上

5、delete from tab_name //将表tab_name中的记录清空

6、select from tab_name //显示表tab_name中的记录

7、mysqldump -uUSER -pPASSWORD

--no-data DATABASE TABLE > tablesql //复制表结构

四、修改表结构

1、 ALTER TABLE tab_name ADD PRIMARY KEY (col_name)

说明:更改表得的定义把某个栏位设为主键。

2、ALTER TABLE tab_name DROP PRIMARY KEY (col_name)

说明:把主键的定义删除

3、 alter table tab_name add col_name varchar(20);

//在tab_name表中增加一个名为col_name的字段且类型为varchar(20)

4、alter table tab_name drop

col_name //在tab_name中将col_name字段删除

5、alter table tab_name modify col_name

varchar(40) not null //修改字段属性,注若加上not null则要求原字段下没有数据

SQL

Server200下的写法是:Alter Table table_name Alter Column col_name varchar(30) not

null;

6、如何修改表名:alter table tab_name rename to new_tab_name

7、如何修改字段名:alter table tab_name change old_col new_col varchar(40);

//必须为当前字段指定数据类型等属性,否则不能修改

8、create table new_tab_name like old_tab_name

//用一个已存在的表来建新表,但不包含旧表的数据

五、数据的备份与恢复

导入外部数据文本:

1执行外部的sql脚本

当前数据库上执行:mysql < inputsql

指定数据库上执行:mysql [表名] <

inputsql

2数据传入命令 load data local infile "[文件名]" into table [表名];

备份数据库:(dos下)

mysqldump --opt school>schoolbbb

mysqldump -u

[user] -p [password] databasename > filename (备份)

mysql -u [user] -p

[password] databasename < filename (恢复)

Mysql常用命令行大全 机 第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限 on 数据库 to 用户名@登录主机 identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb to user1@localhost identified by ""; 第四招: *** 作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、 显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行 *** 作。 2、 显示库中的数据表: use mysql; show tables; 3、 显示数据表的结构: describe 表名; 4、 建库与删库: create database 库名; drop database 库名; 5、 建表: use 库名; create table 表名(字段列表); drop table 表名; 6、 清空表中记录: delete from 表名; 7、 显示表中的记录: select from 表名; 第五招、导出和导入数据 1 导出数据: mysqldump --opt test > mysqltest 即将数据库test数据库导出到mysqltest文件,后者是一个文本文件 如:mysqldump -u root -p123456 --databases dbname > mysqldbname 就是把数据库dbname导出到文件mysqldbname中。 2 导入数据: mysqlimport -u root -p123456 < mysqldbname。 不用解释了吧。 3 将文本数据导入数据库: 文本数据的字段数据之间用tab键隔开。 use test; load data local infile "文件名" into table 表名; 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2、创建一个数据库MYSQLDATA mysql> CREATE DATABASE MYSQLDATA; 3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明 *** 作成功!) 4:查看现在的数据库中存在什么表 mysql> SHOW TABLES; 5:创建一个数据库表 mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1)); 6:显示表的结构: mysql> DESCRIBE MYTABLE; 7:往表中加入记录 mysql> insert into MYTABLE values ("hyq","M"); 8:用文本方式将数据装入数据库表中(例如D:/mysqltxt) mysql> LOAD DATA LOCAL INFILE "D:/mysqltxt" INTO TABLE MYTABLE; 9:导入sql文件命令(例如D:/mysqlsql) mysql>use database; mysql>source d:/mysqlsql; 10:删除表 mysql>drop TABLE MYTABLE; 11:清空表 mysql>delete from MYTABLE; 12:更新表中数据 mysql>update MYTABLE set sex="f" where name='hyq'; posted on 2006-01-10 16:21 happytian 阅读(6) 评论(0) 编辑 收藏 收藏至365Key 13:备份数据库 mysqldump -u root 库名>xxxdata 14:例2:连接到远程主机上的MYSQL 假设远程主机的IP为:110110110110,用户名为root,密码为abcd123。则键入以下命令: mysql -h110110110110 -uroot -pabcd123 (注:u与root可以不用加空格,其它也一样) 3、退出MYSQL命令: exit (回车)

查看自己创建的数据库,跟查看别人创建的数据库没有什么分别,可以用下列语句来查看某个数据库:

查看创建数据库的命令

show

create

database

dbName;

查看所有数据库命令

show

databases;

查看某个数据库的命令

show

database

dbName;

前往 *** 作某个数据库

use

dbName;

直接使用show databases可直接查看数据库,前提是要进去数据库,例如mysql -h localhost -uroot -p,回车后数据密码即可进去数据库实例。

如果需要进去数据库查看表信息,可使用use 数据库名,如use test ,表示进去test数据库,然后使用show tables 查看表心意。

一般在SQL>下进行SQLPLUS *** 作,都需要进行必要的环境设置才能完成我们所需要的输出。所有环境的设置由SET命令加相应的环境变量来完成。下面是常用的环境设置:

§251 ARRAYSIZE(取回的行数)

SET ARRAY[SIZE]{integer}

一次可以提取(Fetch)的行的数目,1->5000,当有较长字段时应设小些。

§252 AUTOCOMMIT(自动提交)

SET AUTO [COMMIT] { [ OFF | ON | IMM | n] }

用于在 *** 作中是自动提交或是部分提交或是不自动提交。

1) 或IMM使得在完成每条SQL语句时将未提交的改变立刻提交给数据库系统。ON

2) 允许在用户发出COMMIT后,可以执行命令的数量(将n条SQL语句所做的改变进行提交)。N

3) 停止自动提交,用户必须用COMMIT命令才能被提交。OFF

§253 LINESIZE(行显示宽度)

可以设置LINESIZE环境变量来控制行的显示宽度,缺省是80个字符。

SET Lin[esize]{80|integer}

Integer =设置行宽度(字符个数),最大值999,如:

SQL>set linesize 160

§254 LONG(长类型显示字节数)

在缺省的SQL> 状态下,SQL>缓冲区用于显示LONG 的字节数只有80个字符。如果我们需要查询的列中含有 LONG类型的字段的话,就需要将LONG缓冲区设置大些。

SET LONG{80|integer}

Integer是 显示或拷贝long值的最大宽度, n=1->32767(但必须小于Maxdata值)

SQL>show Maxdata (最大行宽)

SQL>set long 2000

§255 PAGESIZE(页行数)

在缺省的SQL> 状态下,SQL>缓冲区显示页的行数是24行,其中22行显示数据,2行显示标题和横线。我们将pagesize 设置大些以减少提示标题和横线。

SET pag[esize] {24|integer}

SQL>SET pagesize 66

§256 PAUSE(暂停)

可以设置 PAUSE 为ON 或OFF来控制屏幕显示。当设置为ON 时,在select 语句发出后需要按Enter键才能显示一屏。

SET PAUSE [ ON | OFF ]

SQL> setpause on

提示:在发出select 语句并按Enter键后还要再按Enter键才能显示结果

§257 SPACE(列间空格)

可用 set space 来设置各列间的空格数,语法为:

SET SPA[CE] {1|n}

N为设置输出行列间的空格数,最大为10。

SQL>set space 2

建议:在一般情况下,不用设置space参数。

§258 Termout (启/停屏幕显示)

TERMOUT用于设置在屏幕上显示或不显示所输出的信息。

SET TERMOUT { ON | OFF }

set termout off

set termout on

set termout off 常用SPOOL XXX时,即关闭报表在屏幕上的显示(节省时间)

set termout on 常用SPOOL off之后,即恢复报表在屏幕上的显示

§259 ECHO (启/停命令显示)

可以用ECHO命令来显示或不显示所执行的SQL命令。语法如:

SET ECHO{OFF|ON}

显示执行当中的各命令( 即用start 时)

set echo 受到 set termout 的影响

set pagesize 100

set echo on

select table_name from dict where rownum<20;

select from cat where rownum<30;

set echo off

--下面只显示结果不显示命令:

select table_name from dict where rownum<20;

select from cat where rownum<30;

§2510 TRANSACTION (启动事务)

一个很重要的事务环境设置是TRANSACTION。它包括两个部分的内容:

SET TRANSACTION { READ ONLY | USE ROLLBACK SEGMENT segment_name }

READ ONLY是用于保证读的一致性。即其他用户的修改不影响当前查询结果。

USE ROLLBACK SEGMENT segment_name是为当前所处理的事务指定专门的回滚段。这主要是在进行大量的Insert或Delete或Update时,需要一个大的回滚段以保证事务正常完成。详细见数据库管理员。

§2511 SHOW ALL(列出所有参数)

可以用SHOW ALL来显示当前的所有参数情况。它的用法很简单。比如:

SQL> show all

appinfo为ON并且已设置为"SQLPlus"

arraysize 15

autocommit OFF

autoprint OFF

autorecovery OFF

autotrace OFF

blockterminator "" (hex 2e)

btitle OFF and为下一条SELECT语句的前几个字符

cmdsep OFF

colsep " "

compatibility version NATIVE

concat "" (hex 2e)

copycommit 0

COPYTYPECHECK为ON

define "&" (hex 26)

describe DEPTH 1 LINENUM OFF INDENT ON

markup HTML OFF SPOOL OFF ENTMAP ON PREFORMAT OFF

echo OFF

editfile "afiedtbuf"

embedded OFF

escape OFF

flagger OFF

flush ON

heading ON

headsep "|" (hex 7c)

instance "local"

linesize 80

lno 14

loboffset 1

logsource ""

long 80

longchunksize 80

newpage 1

null ""

numformat ""

numwidth 10

pagesize 14

PAUSE为OFF

pno 0

recsep WRAP

recsepchar " " (hex 20)

release 801070000

repfooter OFF and为NULL

repheader OFF and为NULL

serveroutput OFF

shiftinout INVISIBLE

showmode OFF

spool OFF

sqlblanklines OFF

sqlcase MIXED

sqlcode 0

sqlcontinue "> "

sqlnumber ON

sqlprefix "#" (hex 23)

sqlprompt "SQL> "

sqlterminator ";" (hex 3b)

suffix "sql"

tab ON

termout ON

time OFF

timing OFF

trimout ON

trimspool OFF

ttitle OFF and为下一条SELECT语句的前几个字符

underline "-" (hex 2d)

USER为"SYS"

verify ON

wrap :行将为已换行

SQL>

你可以从上面的参数中看到其当前值,也可以修改某些参数的值。

格式化输出

§261 一般数据的格式化输出

在Oracle的SQL>下,经常用COLUMN命令来对所输出的列进行格式化,即按照一定的格式进行显示。COLMUN命令语法如下:

COL[UMN] [{ column | expr } [ option_1 option_n ] ]

column:列名

expr:有效的SQL表达式

option_1option_n:可以是下列之一:

ALI[AS] alias

CLE[AR]

FOLD_A[FTER]

FOLD_B[EFORE]

FOR[MAT] format

HEA[DING] text

JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}

LIKE {expr|alias}

NEWL[INE]

NEW_V[ALUE] variable

NOPRI[NT]|PRI[NT]

NUL[L] text

OLD_V[ALUE] variable

ON|OFF

WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]

下面给出常用的关键字的解释:

Alias 给出列的别名,BREAK和COUMN可以引用所定义的别名。

CLEAR 取消列的定义。

FORMAT列显示格式,format为:

9999990 9或0的个数决定最多显示多少位

9,999,99999按照逗号和小数点来显示数据,若是0以空格显示

099999 显示前面补0

$999,99999 数字前加美圆号

B99999 若为0,则结果为空白

99999Mi 若数字为负,则负号放在数字后(右边),缺省放在左边

99999PR 负号将以括号括起

9999EEEE 以科学记数法表示(必须有4个E)

999V99 数字乘以10n ,如1234变为123400

DATE 采用日期数字格式(MM/DD/YY)

Heading重新标记列的显示标题,如:

SQL> col ename heading 姓名format a10

SQL> select ename,sal from emp;

例子:

SQL

COLUMN SALARY FOR $9,999,99999

COLUMN LAST_NAME FOR A35

§262 日期的格式化输出

Oracle系统提供了一个NLS_DATE_FORMAT的环境变量来设置日期的显示格式。用它可以完成按照不同格式要求的显示,比如按照中国的习惯为yyyy年mm月dd日等。

1系统日期 sysdate 的显示

用sysdate 可以显示ORACLE RDBMS 所在机器的日期及时间,如:

SQL> alter session set nls_date_format ='"公元"yyyy"年"mm"月"dd"日"';

会话已更改。

SQL> select sysdate from dual;

SYSDATE

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

公元2001年05月30日

2日期类型的显示

select sysdate,to_char(sysdate,’yyyymmdd hh24:mi;ss’) from dual;

SQL> connect scott/tiger

已连接。

SQL> alter session set nls_date_format ='yyyy"年"mm"月"dd"日生"';

会话已更改。

SQL> col HIREDATE heading生日

SQL> col sal heading工资

SQL> col sal ename姓名

SQL> select ename,sal,hiredate from emp;

姓名 工资 生日

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

SMITH 800 1980年12月17日生

ALLEN 1600 1981年02月20日生

WARD 1250 1981年02月22日生

JONES 2975 1981年04月02日生

MARTIN 1250 1981年09月28日生

BLAKE 2850 1981年05月01日生

CLARK 2450 1981年06月09日生

SCOTT 3000 1987年04月19日生

KING 5000 1981年11月17日生

TURNER 1500 1981年09月08日生

ADAMS 1100 1987年05月23日生

JAMES 950 1981年12月03日生

FORD 3000 1981年12月03日生

MILLER 1300 1982年01月23日生

已选择14行。

§27 加标题

有时在输出一些结果时,可能需要加一些标题,如表上面的顶标题,落款等。这样的要求可由Ttitle和Btitle来完成。

ttitle和btitle

ttitle [center|left|right]string 顶标题

btitle [center|left|right]string 底标题

ttitle center 'XX公司人员情况表'

btitle left '制表人:xxxx' right '日期:xxxx年xx月'

Clear ttitle

§28 建立简单报告

我们可以用TTITLE、BTITLE、COLUMN、BREAK ON、COMPUTE SUM及SET LINESIZE、SET PAGESIZE、SET NEWPAGE来设置查询结果的显示格式;在用SPOOL命令将显示结果输出到一个 *** 作系统文件中去,一般输出文件的类型为LST。

建立简单报告主要使用下面命令来实现:

1. SPOOL命令

SPOOL filename 将缓冲区的内容写到文件中

SPOOL off 终止写命令

2. COLUMN 命令

column col_name[,heading] format format_spe

把字段的结果指定为一种输出格式

COL name heading '姓名' for a10

COL sal heading '工资' for 9,99999

3ttitle、btitle

ttitle [center|left|right]string 顶标题

btitle [center|left|right]string 底标题

ttitle center 'XX公司人员情况表'

btitle left '制表人:赵元杰' right '日期:199811月'

Clear ttitle

4break、compute

clear breaks,clear computes

break on column 在该列上中断

break on row 在每一行上中断

break on Page

break on report

skip n 跳过n行

skip page 跳过未用完的页

compute avg

compute count

compute max

compute min

compute std

compute sum

compute var

compute num 计算所有行

compute sum of sal on deptno

5set 在报表中的设置

l set termout off、set termout on命令

l set termout off 常用SPOOL XXX前,即关闭报表在屏幕上的显示(节省时间)

l set termout on 常用SPOOL off之后,即恢复报表在屏幕上的显示

l set ECHO{OFF|ON} 显示执行当中的各命令(即用start 时),set echo 受到 set termout 的影响

l set Lin[esize]{80|integer} 设置行宽度,最大值999

l set pag[esize] {24|integer} 设置页的大小

例子:

SQL>COL ename heading ‘姓名’ for a12

SQL>COL sal heading ‘工资’ for a999,99999

SQL>COL hiredate heading ‘出生’

SQL>SET LINESIZE 200

SQL>SET PAGESIZE 60

SQL>SPOOL c:\all_emp

SQL>select ename,sal,deptno,hiredate from emp order by deptno;

SQL>SPOOL OFF

§29 输入变量

Oracle提供一种在处理SQL语句时可以将参数作为变量来对待的技术,即在条件句中可以是变量而不是具体的值,这样的处理就是输入变量。这样做的目的就是可以重复使用同样的语句,每次只要输入相应的值即可。要实现将参数写成为变量,只要在变量前加一个&号即可。看下面语句:

Select sid, serial#,username, command from v$session

Where USERNAME = upper(‘&usr’);

这样的语句在运行中,系统会自动提示你回答变量的具体值,上面语句运行时提示和回答时显示的信息如下:

SQL> Select sid, serial#,username, command from v$session

2 Where USERNAME = upper('&usr');

输入 usr 的值: sys

原值 2: Where USERNAME = upper('&usr')

新值 2: Where USERNAME = upper('sys')

SID SERIAL# USERNAME COMMAND

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

7 26 SYS 3

在变量说明中,可以使用多个变量,比如:

Alter system kill session ‘&sid,&ser’;

Alter system kill session ‘&会话号,&序列号’;

它的运行情况如下:

SQL> Select sid, serial#,username, command from v$session;

SID SERIAL# USERNAME COMMAND

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

1 1 0

2 1 0

3 1 0

4 1 0

5 1 0

6 1 0

7 26 SYS 3

8 16 ZHAO 0

已选择8行。

SQL> Alter system kill session '&sid,&ser';

输入sid的值: 8

输入ser的值: 16

原值 1: Alter system kill session '&sid,&ser'

新值 1: Alter system kill session '8,16'

系统已更改。

一般系统缺省下是使用 “&” 符号来定义变量,你也可以使用另外的符号来代替,比如不喜欢用 & 而要用 ?,则有:

SQL> set define

SQL> select sid,serial#,username from v$session where username='usr';

输入 usr 的值: SYS

原值 1: select sid,serial#,username from v$session where username='usr'

新值 1: select sid,serial#,username from v$session where username='SYS'

SID SERIAL# USERNAME

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

7 26 SYS

次时由于我们修改了会话环境的参数值,可以用下面命令查看:

SQL> show define

define "" (hex 3f)

以上就是关于如何在ubuntu中 *** 作mysql数据库全部的内容,包括:如何在ubuntu中 *** 作mysql数据库、mysql数据库中最常用的几个命令、mysql 怎么查看谁创建的数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9704019.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存