mysql basic operation,mysql计算

mysql数据库操作,mysql数据库

基本知识方便操作

//创立数据库

create database databasename;

//进入数据库

use databasename;

//展现表名(能够透过那些讲话查看表数量,从而判别是不是导入错误)

show tables;

//在进入数据库以前呈现全部表

show tables from databasename;

//创建表

create table 表名 (

id INT NOT NULL AUTO_INCREMENT,

content VARCHAR(100) NOT NULL,

PRIMARY KEY ( id )

);

//查看表结构

describe ‘表名’;

//删除表

drop table ‘表名’;

//增加字段

ALERT TABLE test ADD COLUMN log VARCHAR(100) NOT NULL AFTER content;

//修改字段

ALTER TABLE `数量库名`.`表名` CHANGE `当下字段` `新字段`
VARCHAR( 11 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

ALTER TABLE `多少库名`.`表名` CHANGE `此时此刻字段` `新字段`
VARCHAR( 11 ) NOT NULL;

//删除字段

ALTER TABLE `数据库名`.`表名` DROP COLUMN `字段`;

//清楚表数据
TRUNCATE TABLE `数据库`.`表名`;

能够透过phpmyadmin举办操作

 

基本知识方便操作
//成立数据库 create database databasename; //进入数据库 use
databasename; //展现表名(能够透过这么些…

基本知识方便操作

基本知识方便操作

mysql> select * from wifi_data where dev_id like
“0023-AABBCCCCBBAA” ;

//创制数据库

//创立数据库

一、呈现数据库列表。
show databases;
刚起首时才三个数据库:mysql和test。mysql库很要紧它里面有MYSQL的系统音信,大家改密码和新扩充用户,实际上便是用那么些库开始展览操作。

create database databasename;

create database databasename;

二、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的早晚不会素不相识吧
show tables;

//进入数据库

//进入数据库

三、展现数据表的布局:
describe 表名;

use databasename;

use databasename;

4、建库:
create database 库名;

//呈现表名(能够透过那几个讲话查看表数量,从而剖断是或不是导入错误)

//突显表名(可以透过那些讲话查看表数量,从而剖断是不是导入错误)

5、建表:
use 库名;
create table 表名 (字段设定列表);
如下:
CREATE TABLE `wifi_test` (
 `dev_id` varchar(30) NOT NULL default ” COMMENT ‘设备ID’,
 `timestamp` varchar(50) NOT NULL default ” COMMENT ‘时间’,
 `interval` tinyint(一) NOT NULL default ‘1’ COMMENT ‘上传间隔’,
 PRIMARY KEY  (`dev_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

show tables;

show tables;

陆、删库和删表:
drop database 库名;
drop table 表名;

//在进入数据库从前展现全数表

//在进入数据库在此以前展示全体表

7、将表中记录清空:
delete from 表名;

show tables from databasename;

show tables from databasename;

八、展现表中的记录:
select * from 表名;

//创建表

//创建表

9、表数据中的增加和删除改查
(全体陈设)insert into 表名 valus(”,”,……,”);
(部分插入)insert into 表名(列x,列y,……,列z) valus(”,”,……,”);
insert into wifi_test values(“1234567890ab”,”201506161330″,”300″);
insert into wifi_test values(“1234567890ad”,”201506161332″,0);
 insert into wifi_test(dev_id,timestamp)
values(“1234567890ag”,”201506181405″);
 insert into wifi_test(timestamp) values(“201506181505”);
select * from wifi_test;

create table 表名 (

create table 表名 (

十.向表中去除行数据:
delect from 表名;(清空表)
delect from 表名 where [寻觅条件表明式]
delete from wifi_test where dev_id=1234567890ab;
delete from table_xx where catch_time LIKE ‘2016-07-14 20:22:%’;
 

id INT NOT NULL AUTO_INCREMENT,

id INT NOT NULL AUTO_INCREMENT,

1一.改变,改换表中的数据:
update 表名 set 列名=’表达式’ [from 另一表名] where
[检索条件表明式];
update wifi_test set interval=’300′ where dev_id=1234567890ag;
update wifi_test set interval=replace(interval,127,80);
 update wifi_test set timestamp=20150618143333 where dev_id;

content VARCHAR(100) NOT NULL,

content VARCHAR(100) NOT NULL,

update语法
Single-table语法:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
    SET col_name1=expr1 [, col_name2=expr2 …]
    [WHERE where_definition]
    [ORDER BY …]
    [LIMIT row_count]
Multiple-table语法:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET col_name1=expr1 [, col_name2=expr2 …]
    [WHERE where_definition]

PRIMARY KEY ( id )

PRIMARY KEY ( id )

UPDATE语法能够用新值更新原有表行中的各列。SET子句提醒要修改哪些列和要授予什么值。WHERE子句内定应立异哪些行。假设未有WHERE子句,则更新拥有的行。倘若钦定了O帕杰罗DER
BY子句,则依照被钦命的各类对行进行革新。LIMIT子句用于给定一个限值,限制能够被更新的行的数量。

);

);

若是你在3个表明式中通过tbl_name访问一列,则UPDATE使用列中的当前值。举例,以下语句把年纪列设置为比当下值多壹:
UPDATE persondata SET age=age+1;
UPDATE赋值被从左到右评估。比如,以下语句对年纪列加倍,然后再张开充实:
UPDATE persondata SET age=age*2, age=age+1;
设若您把1列设置为其近日包蕴的值,则MySQL会注意到那一点,但不会更新。
update表的一点字段为null
update person set number=null,name=null;
比如您把被已定义为NOT
NULL的列更新为NULL,则该列被安装到与列类型对应的暗中同意值,并且累加警告数。对于数字类型,默许值为0;对于字符串类型,默许值为空字符串(”);对于日期和岁月等级次序,暗许值为“zero”值。

//查看表结构

//查看表结构

四个表的UPDATE操作
UPDATE items,month SET items.price=month.price WHERE
items.id=month.id;
以上的例子彰显出了动用逗号操作符的个中联合,然则multiple-table
UPDATE语句能够应用在SELECT语句中允许的其余类型的联合,譬如LEFT
JOIN,可是你无法把OBMWX伍DELacrosse BY或LIMIT与multiple-table UPDATE同不经常间使用。

describe ‘表名’;

describe ‘表名’;

1二.查询表中的数据:select          */表字段一,表字段贰,……表字段n    
from 表名 【where 查询条件】;
mysql> select * from student;
mysql> select * from student where id=1;
mysql> select id,name from student;
mysql> select id,name from student where id in(1,三,4);//in表示集结。

//删除表

//删除表

 

drop table ‘表名’;

drop table ‘表名’;

 //看当前利用的是哪个数据库 ,假若你还没挑选别的数据库,结果是NULL。
mysql>select database();
+————+
| DATABASE() |
+————+
| menagerie  |
+————+

//增多字段

//加多字段

//查看有何样数据库
 mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| test               |
+——————–+

ALERT TABLE test ADD COLUMN log VARCHAR(100) NOT NULL AFTER content;

ALERT TABLE test ADD COLUMN log VARCHAR(100) NOT NULL AFTER content;

//选择数据库
mysql>use test;  //;号可有可无,必须单行使用.  

//修改字段

//修改字段

为了找寻目前的数据库包罗哪些表(举例,当你不能够鲜明2个表的名字),使用那几个命令:

ALTER TABLE `数据库名`.`表名` CHANGE `现阶段字段` `新字段`
VARCHAR( 11 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

ALTER TABLE `多少库名`.`表名` CHANGE `当前字段` `新字段`
VARCHAR( 11 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

//看数据Curry有怎么样表
mysql>show tables;
+———————+
| Tables in menagerie |
+———————+
| event               |
| pet                 |
+———————+
假让你想要知道3个表的结构,能够应用DESC卡宴IBE命令;它显得表中每一个列的音讯:

ALTER TABLE `数量库名`.`表名` CHANGE `眼前字段` `新字段`
VARCHAR( 11 ) NOT NULL;

ALTER TABLE `多少库名`.`表名` CHANGE `时下字段` `新字段`
VARCHAR( 11 ) NOT NULL;

//看表里有何列
mysql> describe pet;
+———+————-+——+—–+———+——-+
| Field   | Type        | Null | Key | Default | Extra |
+———+————-+——+—–+———+——-+
| name    | varchar(20) | YES  |     | NULL    |       |
| owner   | varchar(20) | YES  |     | NULL    |       |
| species | varchar(20) | YES  |     | NULL    |       |
| ***     | char(1)     | YES  |     | NULL    |       |
| birth   | date        | YES  |     | NULL    |       |
| death   | date        | YES  |     | NULL    |       |
+———+————-+——+—–+———+——-+
Field展现列名字,Type是列的数据类型,Null表示列是不是能包蕴NULL值,Key展现列是或不是被索引而Default钦点列的私下认可值。

//删除字段

//删除字段

要是表有索引,SHOW INDEX FROM tbl_name生成有关索引的音信。

ALTER TABLE `数据库名`.`表名` DROP COLUMN `字段`;

ALTER TABLE `数码库名`.`表名` DROP COLUMN `字段`;

删去数据库.
mysql>drop database test;  

//清楚表数据
TRUNCATE TABLE `数据库`.`表名`;

//清楚表数据
TRUNCATE TABLE `数据库`.`表名`;

 如先输入mysql,成功运营后输入use mysql,出现如下错误:Access denied for
user ”@’localhost’ to database ‘mysql’
再有,输mysql能够,输mysql -u root就出错了:
Access denied for user ‘root’@’localhost’ (using password: NO).
The reason is:
是前天更新ROOT密码时出错
update user set password = ‘12345陆’ where user =”root”
//那样写是错的,密码其实不是123456
应该为update user set password = password (‘123456’) where user =
“root”
具体操作步骤:
关闭mysql:
# service mysqld stop
然后:
# mysqld_safe
–skip-grant-tables(该命令达成后,也许极端不会提醒输入下一下令,下边发号施令在新开的顶点中贯彻)
启动mysql:
# service mysqld start
mysql -u root
mysql> use mysql
mysql> UPDATE user SET Password=PASSWORD(‘xxx’) WHERE user=’root’;
mysql> flush privileges;
mysql>\q

能够因而phpmyadmin进行操作

能够经过phpmyadmin实行操作

ERROR 1044 (42000): Access denied for user ”@’localhost’ to database
 解决 ERROR 1045 (28000): Access denied for user ‘root’@’localhost’
(using password: YES) 问题
近期新装好的mysql在进入mysql工具时,总是有错误提醒:
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using
password: NO)
或者
# mysql -u root -p password ‘newpassword’
Enter password:
mysqladmin: connect to server at ‘localhost’ failed
error: ‘Access denied for user ‘root’@’localhost’ (using password:
YES)’
于今总算找到消除方法了。本来筹划重装的,未来无需了。
办法操作很简短,如下:
# /etc/init.d/mysql stop
# mysqld_safe –user=mysql –skip-grant-tables –skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWOCRUISERD(‘newpassword’) where
USEKoleos=’root’ and host=’root’ or
host=’localhost’;//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

 

 

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/var/lib/mysql/mysql.sock’ (2)

此主题素材是未曾开启mysqld服务.

  root 用户的 create_priv 权限是不是棉被服装置为N了?

在创建数据库时报错
mysql> create database haha;
ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘haha’ mysql>  
消除方案:这是因为在mysql的usr表中,存在用户名字为空的账户,就算登入时用的是root,但是佚名登录。删除user.user中值为NULL的,或更新NULL为test 一)delete from user where user is NULL
2)update user set user=’test’ where user is NULL

ERROR 1044 (42000): Access denied for user ‘root’@’%’ to database
笔者那边root有二种分析登六格局分别是:Host: bidevedw\_db、Host:
::1、Host: %
一般情况还应该有Host:1二7.0.0.1、Host:localhost笔者的内部把哪二种删了。
请注意 !
 注意上边每条记下的的壬辰革命字体部分格兰特_priv: Y
以此象征,以这种办法深入分析登陆的root用户,是还是不是有grant权限,Y则象征有授权限给别的用户的权能,N表示并没有。
那边恰好,就是大家要找的缘故,因为本人的/my.cnf文件之中有skip-name-resolve参数,所以root都以深入分析到@’%’格局登入,于是就从未grant_priv权限。

斩草除根办法:
一、在不重启MySQL服务的事态下,只供给在登六的时候增添-h参数。
例如:(a). /usr/local/mysql/bin/mysql -uroot -p123456 -h::1
         (b)./usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1
2、需求重启MySQL。把skip-name-resolve参数去掉  —-
还没评释。然而本人记得,假若去掉了,日志里面会有恢宏的警示音信。我是因为那几个警告新闻,才增加的这一个参数。

use testdb;
简易描述表结构,字段类型:
desc tb_content;

翻看表生成的DDL,这一个命令尽管突显起来不是太轻便看,
那么些不成难题得以用\G来结尾,使得结果轻巧阅读;该命令把创造表的DDL展现出来,于是表结构、类型,外键,备注全部呈现出来了。笔者相比较欣赏那个命令:输入轻便,呈现结果周全。
show create table tb_content;

查询表中列的笺注新闻
select * from information_schema.columns where table_schema =
‘testdb’;
select * from information_schema.columns where table_schema =
‘testdb’ and table_name = ‘tb_content’;

相关文章