导入csv文件
使用如下命令:
mysql> load data infile "your csv file path" into table [tablename] fields terminated by ','
注意上面导入文件时,都需要提前建立好与文件内各个段对应好的数据表。并且文件的路径需要使用引号括起来,双引号和单引号都可以。
记录成长
导入csv文件
使用如下命令:
mysql> load data infile "your csv file path" into table [tablename] fields terminated by ','
注意上面导入文件时,都需要提前建立好与文件内各个段对应好的数据表。并且文件的路径需要使用引号括起来,双引号和单引号都可以。
方法一:
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段
下面先来看看例子:
table
id name
1 a
2 b
3 c
4 c
5 b
库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。
比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
select distinct name from table
得到的结果是:
name
a
b
c
好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:
select distinct name, id from table
结果会是:
id name
1 a
2 b
3 c
4 c
5 b
distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。
我们再改改查询语句:
select id, distinct name from table
很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。。。。。。。
最终好用的语句如下:
select *, count(distinct name) from table group by name
结果:
id name count(distinct name)
1 a 1
2 b 1
3 c 1
最后一项是多余的,不用管就行了,目的达到。。。。。
哦,对,再顺便说一句,group by 必须放在 order by 和 limit之前,不然会报错。。。。。。。。!OK了
总结语句:select *, count(distinct name) from (select * from table……等嵌套语句) group by name
参考出处:https://blog.csdn.net/djun100/article/details/84473838?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
约束分为表级约束和列级约束,列级约束包括,主键,唯一,非空,默认值;外键约束一般写在表级约束里面
create table if not exists major(
id int primary key,
name varchar(20)
)
create table if not exists info(
id int primary key,
name varchar(20) not null,
gender char(1),
age int default 18,
seat int unique,
majorid int,
constraint fk_info_major foreign key(majorid) referencer major(id)
);
desc info;
show index from info;
主键特点唯一,非空,一张表中至多一个主键,允许组合
唯一:可以为空,一张表中可以有多个唯一键,允许组合
create table if not exists info(
id int,
name varchar(20) not null,
gender char(1),
age int default 18,
seat int,
majorid int,
constraint fk_info_major foreign key(majorid) referencer major(id),
primary key(id,name),
unique(age,seat)
);
alter table info modify COLUMN id int auto_increment
constraint fk_info_major foreign key(majorid) REFERENCES major(id) on delete cascade;
alter table info add constraint fk_info_major foreign key(majorid) REFERENCES major(id) on delete cascade ;
constraint fk_info_major foreign key(majorid) REFERENCES major(id) on delete set null;
alter table info add constraint fk_info_major foreign key(majorid) REFERENCES major(id) on delete set null;
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
查询Mysql数据库中以逗号分隔id存储的字段信息,id对应的详细信息在另一个表中
id | 名称 | 资产Id |
---|---|---|
1 | 小红 | 1,2,3 |
2 | 小明 | 2,5 |
id | 名称 |
---|---|
1 | 房子 |
2 | 车子 |
3 | 股票 |
4 | 基金 |
5 | 债券 |
select * from u
id | 名称 | 资产 |
---|---|---|
1 | 小红 | 房子,车子,股票 |
2 | 小明 | 车子,债券 |
select u.id,u.名称,group_concat(b.名称 orderby b.id separator "----") from u left join b on find_in_set(b.id,u.资产Id) group by u.id;
mysql 错误Row xx was cut by GROUP_CONCAT()
1.在MySQL配置文件中加上
group_concat_max_len = 102400 #你要的最大长度
2.可以简单一点,执行语句:
mysql> SET GLOBAL group_concat_max_len=102400;
Query OK, 0 rows affected (0.01 sec)
GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你可以通过下面的语句获得:
mysql> SELECT @@global.group_concat_max_len;
@@global.group_concat_max_len |
---|
1024 |
1024这就是一般MySQL系统默认的最大长度,如果你的bid串起来大于这个就会出问题,所以解决方法就是改掉这个默认值了
1.https://dev.mysql.com/downloads/file/?id=471631 下载安装文件
2.安装完成后,会跳出一个界面显示初始的root密码,保存下来第4步会用到,然后进入系统偏好设置启动mysql服务
3.添加环境变量:
(1).进入/usr/local/mysql/bin,查看此目录下是否有mysql,见pic6。
(2).执行vim ~/.bash_profile
在该文件中添加mysql/bin的目录,见pic7:
PATH=$PATH:/usr/local/mysql/bin
添加完成后,按esc,然后输入wq保存。
最后在命令行输入source ~/.bash_profile
4.mysql -uroot -pcode 进入数据库修改登录密码:
SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpass’);
安装
我们将使用 Homebrew 安装 MySQL,同时也会安装 MySQL 的相关文件。
安装 MySQL:
brew update # 这是一个好习惯 brew install mysql
在使用 MySQL 前,我们需要做一些设置:
unset TMPDIR mkdir /usr/local/var
$ mysql_install_db –verbose –user=whoami
–basedir=”(brew –prefix mysql)” –datadir=/usr/local/var/mysql –tmpdir=/tmp
使用
启动 MySQL 服务,运行 mysql.server mysql.server start
关闭 MySQL,运行:
mysql.server stop
你可以了解更多 mysql.server 的命令,运行: mysql.server –help
登录 MySQL, 运行:
mysql -uroot
Note: 默认情况下,MySQL 用户 root 没有密码,这对本地开发没有关系,但如果你希望修改密码,你可以运行: mysqladmin -u root password ‘new-password’
译注:
当你在设置密码时出现问题,可以参考 lgn21st 的方式。
此外,如果你觉得敲那么多命令是一件很麻烦的事情,那么你也可以参考 Mac OS安装 MySQL(使用二进制PGK包安装)
解决MAC下MySQL忘记初始密码的方法分享给大家,供大家参考,具体内容如下
第一步:
点击系统偏好设置->最下边点MySQL,在弹出页面中,关闭服务
第二步:
进入终端输入:cd /usr/local/mysql/bin/
回车后 登录管理员权限 sudo su
回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe –skip-grant-tables &
回车后mysql会自动重启(偏好设置中mysql的状态会变成running)
第三步:
输入命令 ./mysql
回车后,输入命令 FLUSH PRIVILEGES;
回车后,输入命令 SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘你的新密码’);
1.配置数据库的用户名和密码,编辑两个文件:根目录下的.env和config/database.php
2.配置路由,编辑routes/web.php
加行代码
[code]Route::get(‘user/{id}’, ‘UserController@show’);[/code]
表示访问这个链接 http://xxx.com/user/1 的时候,会去执行UserController里的show函数,并带上参数id
3.在目录app\Http\Controllers下新加个UserController,参考code如下:
[code]<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* 为指定用户显示详情
* db:mysql
* @param int id
* @return Response
*/
public function show(id)
{
//return ‘user_id’.id;users = DB::select(‘select * from users where id=’.id.’ limit 1′);
/* foreach (users as user) {
echouser->token_name;
}*/
data=json_encode(users);
return $users;
}
}[/code]
4.访问http://xxx.com/user/1 看效果
Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
解决方案
/修改表引擎/
ALTER TABLE drug ENGINE=MYISAM;