mysql使用笔记

在shell中操作mysql

mysql -hhostname -Pport -uusername -ppassword "数据库名" -A -e "sql语句"
其中,mysql -A表示不预读数据库信息

安装mysql(linux)

1、安装,安装路径记为PATH
2、修改配置文件:$vim PATH/etc/mysql/my.cnf
3、启动数据库服务:$sh ~/.jumbo/bin/mysqld_safe --user=mysql &
4、创建root用户:

$cd PATH/bin/ && mysqladmin -u root password 123456
$mysql -hlocalhost -uroot -p123456
然后进入>mysql命令模式
mysql>use mysql;
#远程访问
mysql>update user set host='%' where host='localhost' and user='root';
#本地访问
mysql>GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' identified by '123456';
#刷新权限
mysql>flush privileges;
mysql>\q

5、关闭数据库(重启服务)

#带上用户名和密码
$mysqladmin shutdown -uroot -p123456

Mysql 建立数据表 CREATE TABLE

create table 表名( 关键字1 关键字数据类型, 关键字2 关键字数据类型 , ... , PRYMARY KEY (主键关键字1, 主键关键字2))ENGINE=InnoDB DEFAULT CHARSET=utf8;
主键:必须有且不能重复,可以由一个或者多个关键字联合作为主键。
例子:
mysql> create table tag_table( tag_type TINYINT NOT NULL, tag VARCHAR(20) NOT NULL, count INT, PRIMARY KEY(tag_type,tag ))ENGINE=InnoDB DEFAULT CHARSET=utf8;

删除 DELETE/TRUNCATE/DROP

1、删除数据表中部分数据
delete from 表名 where ...;
2、清空数据表内所有数据,保留结构
truncate table 表名;
3、删除表/数据库,什么也不保留
drop table/databases 表名/库名;

不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。
效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,
而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

查询数据 SELECT语句(+WHERE条件)

例子:
select tag_type, tag from table1 where tag_type=1 and FROM_UNIXTIME(create_time,'%Y%m%d') between 20180905 and 20180905;
tag_type, tag是数据表的关键字,table1是表名
FROM_UNIXTIME(create_time,'%Y%m%d') 函数将时间戳转换为日期形式,
如FROM_UNIXTIME( 1249488000, '%Y%m%d' ) -> 20071120。

查询表数据行数

select count(*) from 表名

插入数据 INSERT INTO

insert into database_name.table_name(key1, key2, key3 ...)
values
('word1',num1,'word2')

posted @ 2018-10-27 23:00  surimj  阅读(186)  评论(0编辑  收藏  举报