mysql初学,mysql修改,mysql查找,mysql删除,mysql基本命令
Mysql 下载地址
https://dev.mysql.com/downloads/mysql/
1、连接Mysql
格式: mysql -h主机地址 -u用户名 -p用户密码
1、连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)
2、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
mysql -u root mysql
set password for root@localhost=password('secret');
flush privileges; 更新权限
1、给root加个密码ab12。
首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -u root -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、再将root的密码改为djg345。
mysqladmin -u root -p ab12 password djg345
3、增加新用户
注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。
2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
命令:create database <数据库名>
命令:show databases (注意:最后有个s)
命令:drop database <数据库名>
命令: use <数据库名>
命令:mysql> select database(); 选择当前数据库
命令 : mysql> select version(); 显示mysql版本号
命令 : mysql> select now(); 显示当前时间
命令 : SELECT DAYOFMONTH(CURRENT_DATE); 显示日
命令 : SELECT MONTH(CURRENT_DATE); 显示月
命令 : SELECT YEAR(CURRENT_DATE); 显示年
命令 : mysql> SELECT "welecome to my blog!"; 显示字符串
命令 : select ((4 * 4) / 10 ) + 25; 计算
命令 : select CONCAT(f_name, " ", l_name) AS Name from employee_data where title = 'Marketing Executive'; 拼接字符串
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); 创建数据表
eg: 创建一个MyClass表
mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default '0',
> degree double(16,2));
命令 : mysql> desc MyStudents 查看表结构
命令:drop table <表名>删除表
命令 : mysql> insert into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59); 插入数据
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
命令 : mysql> select * from MyClass; 查询所有数据
命令 : mysql> select * from MyClass order by id limit 0,2; 限制前两行
命令 : mysql> delete from MyClass where id=1; 删除数据
命令 : mysql> update MyClass set name='Mary' where id=1; 更新数据
命令:alter table 表名 add字段 类型 其他; 增加字段
命令 : mysql> alter table MyClass add passtest int(4) default '0'
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 修改数据库编码的命令
ALTER TABLE `menu` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 修改表的编码的命令
ALTER TABLE `menu` CHANGE `text` `text` TEXT CHARACTER SET utf8 COLLATE utf8_bin 修改表的编码的命令设置字符为UTF-8即可
命令 : mysql> alter table employee add primary key(id); 加主关键字索引;
alert table employees add collumn birthdate date [after | first | last name]
命令 : mysql> alter table 表名 add unique 索引名 (字段名);
命令 : mysql> alter table employee add unique emp_name2(cardnumber);加唯一限制条件的索引
删除某个索引
mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;
修改原字段名称及类型:
mysql> ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
命令:rename table 原表名 to 新表名; 修改表名;
create table employees2 select * from employees; 复制表
create table employees2 select name, phone from employees; 如果只需要一部分内容
create temporary table emp_temp select * from employees; 创建临时表, 得有权限
drop [temporary] table [if exists] table_name [, table_name, ...]
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.导出一个数据库结构
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
例如,将aaa库备份到文件back_aaa中:
[root@test1 root]# cd /home/data/mysql
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
7.1 一个建库和建表的实例1
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(”,’allen’,'大连一中’,'1976-10-10′);
insert into teacher values(”,’jack’,'大连二中’,'1975-12-23′);
如果你在mysql提示符键入上面的命令也可以,但不方便调试。
1、你可以将以上命令原样写入一个文本文件中,假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
mysql -uroot -p密码 < c:\\school.sql
如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。
2、或者进入命令行后使用 mysql> source c:\\school.sql; 也可以将school.sql文件导入数据库中。
7.2 一个建库和建表的实例2
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设为日期字段。
数据类型
DATE YYYY-MM-DD eg: 20100810 | 2010-08-10 范围 1000-01-01 到 9999-12-31, 中间的-可以不写, 也可以用人其他字符代提 比如 , * !(非数字字母)
DATETIME YYYY-MM-DD HH:MM:SS eg: 20100810153510 | 2010-08-10 15:35:10 范围: 1000-01-01 00:00:00 到 2037-12-31 23:59:59
YEAR
* 两位数值 1~99 1~69=>2001-2069, 70~99=>1970~1999
* 四位数值 1901~2155
* 两位数字符串 "00"~"99". 同两位数值
* 四位数字符串 同四位数值
BOOL和BOOLEAN TINYINT(1)的别名, 值: 0|1
BIGINT -9 223 372 036 854 775 808~9 223 372 036 854 775 807
INT -2 147 483 648 ~ 2 147 483 647
1. SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
2. 创建数据库
mysql> create database name character set utf8;
3. 创建表
CREATE TABLE `type` (
`id` int(10) unsigned NOT NULL auto_increment,
`flag_deleted` enum('Y','N') character set utf8 NOT NULL default 'N',
`flag_type` int(5) NOT NULL default '0',
`type_name` varchar(50) character set utf8 NOT NULL default '',
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
4. 修改数据库成utf8的.
mysql> alter database name character set utf8;
5. 修改表默认用utf8.
mysql> alter table type character set utf8;
6. 修改字段用utf8
mysql> alter table type modify type_name varchar(50) CHARACTER SET utf8;
卸载:
1、mysql删除,一个文件都不能留
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
2、sudo rm -rf /var/db/receipts/com.mysql.*
如果忘记密码,强行修改:
step1:
停止Mysql服务
step2:
进入终端输入:cd /usr/local/mysql/bin/
回车后 登录管理员权限 sudo su
回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables &
回车后mysql会自动重启(偏好设置中mysql的状态会变成running)
step3.
输入命令 ./mysql
回车后,输入命令 FLUSH PRIVILEGES;
回车后,输入命令 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
ps aux | grep mysq*
1) ps a 显示现行终端机下的所有程序,包括其他用户的程序。
2)ps -A 显示所有程序。
3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
4)ps -e 此参数的效果和指定"A"参数相同。
5)ps e 列出程序时,显示每个程序所使用的环境变量。
6)ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps -H 显示树状结构,表示程序间的相互关系。
8)ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s 采用程序信号的格式显示程序状况。
10)ps S 列出程序时,包括已中断的子程序资料。
11)ps -t 指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u 以用户为主的格式来显示程序状况。
13)ps x 显示所有程序,不以终端机来区分。
ps是显示当前状态处于running的进程,grep表示在这些里搜索,而ps aux是显示所有进程和其状态。
修改配置文件 配置字符集
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
sudo vi /etc/my.cnf
[client]部分加入:
default-character-set=utf8
[mysqld]部分加入:
character-set-server=utf8
修改完毕之后再启动mysql
本文原创,未经允许,不得转载!!