关于mysql中文插入和显示
- 格式:doc
- 大小:25.50 KB
- 文档页数:2
MySQL中的数据插入和更新操作在数据库的应用中,数据的插入和更新操作是非常常见的操作,尤其是在MySQL这样的关系型数据库系统中。
本文将着重讨论MySQL中的数据插入和更新操作,并对其进行详细的解释和说明。
一、数据插入操作数据插入操作是向数据库中添加新的数据的过程。
在MySQL中,可以通过多种方式进行数据插入操作,包括使用INSERT语句、使用LOAD DATA INFILE语句以及使用INSERT INTO SELECT语句等。
下面将对这些方式进行详细的介绍。
1. 使用INSERT语句插入数据INSERT语句是MySQL中最基本和常见的插入数据的方式。
其语法如下:```INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);```其中,`表名`是要插入数据的表名,`列名1, 列名2, ...`是要插入数据的列名,`值1, 值2, ...`是要插入的具体数值。
例如,插入一条学生信息的示例代码如下:```INSERT INTO student (id, name, age) VALUES (1, '张三', 18);```2. 使用LOAD DATA INFILE语句插入数据LOAD DATA INFILE语句可以通过读取外部文件中的数据并将其插入到MySQL数据库中。
其语法如下:```LOAD DATA INFILE '文件路径' INTO TABLE 表名;```其中,`文件路径`是外部文件的路径,`表名`是要插入数据的表名。
值得注意的是,插入的外部文件中的数据必须与要插入的表的列名一一对应。
示例代码如下:```LOAD DATA INFILE '/path/to/file.csv' INTO TABLE student;```3. 使用INSERT INTO SELECT语句插入数据INSERT INTO SELECT语句可以将查询结果插入到目标表中。
mysql解决⽣僻字,特殊字符插⼊失败MySQL 的 utf8 实际上不是真正的 UTF-8。
utf8 只⽀持每个字符最多三个字节,⽽真正的 UTF-8 是每个字符最多四个字节。
MySQL ⼀直没有修复这个 bug,他们在 2010 年发布了⼀个叫作 utf8mb4 的字符集,绕过了这个问题。
当然,他们并没有对新的字符集⼴⽽告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在⽹络上仍然在建议开发者使⽤ utf8,但这些建议都是错误的。
简单概括如下:MySQL 的 utf8mb4 是真正的 UTF-8。
MySQL 的 utf8 是⼀种专属的编码,它能够编码的 Unicode 字符并不多。
所有在使⽤ utf8 的 MySQL 和 MariaDB ⽤户都应该改⽤ utf8mb4,永远都不要再使⽤ utf8。
为什么会有UTF8MB4?既然utf8应付⽇常使⽤完全没有问题,那为什么还要使⽤utf8mb4呢? 低版本的MySQL⽀持的utf8编码,最⼤字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。
三个字节的 UTF-8 最⼤能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多⽂平⾯(BMP)。
也就是说,任何不在基本多⽂平⾯的 Unicode字符,都⽆法使⽤MySQL原有的 utf8 字符集存储。
这些不在BMP中的字符包括哪些呢?最常见的就是Emoji 表情(Emoji 是⼀种特殊的 Unicode 编码,常见于 ios 和 android ⼿机上),和⼀些不常⽤的汉字,以及任何新增的 Unicode 字符等等。
UTF-8编码理论上将, UTF-8 格式使⽤⼀⾄六个字节,最⼤能编码 31 位字符。
最新的 UTF-8 规范只使⽤⼀到四个字节,最⼤能编码21位,正好能够表⽰所有的 17个 Unicode 平⾯。
关于UTF编码,请阅读《常见编码总结》⼀⽂。
⽽utf8 则是 Mysql 早期版本中⽀持的⼀种字符集,只⽀持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多⽂本平⾯。
MySQL函数描述、学习总结(适用版本:MySQL 3.23.7alpla)1. MySQL API (2)1.1. MySQL C API (2)1.2. C API数据类型 (3)1.3. C API函数概述 (6)1.4. C API函数描述 (9)1.4.1. mysql_affected_rows() (10)1.4.2. mysql_close() (11)1.4.3. mysql_connect() (11)1.4.4. mysql_change_user() (12)1.4.5. mysql_create_db() (13)1.4.6. mysql_data_seek() (14)1.4.7. mysql_debug() (15)1.4.8. mysql_drop_db() (15)1.4.9. mysql_dump_debug_info() (16)1.4.10. mysql_eof() (17)1.4.11. mysql_errno() (18)1.4.12. mysql_error() (19)1.4.13. mysql_escape_string() (20)1.4.14. mysql_fetch_field() (21)1.4.15. mysql_fetch_fields() (22)1.4.16. mysql_fetch_field_direct() (23)1.4.17. mysql_fetch_lengths() (23)1.4.18. mysql_fetch_row() (24)1.4.19. mysql_field_count() (26)1.4.20. mysql_field_seek() (27)1.4.21. mysql_field_tell() (28)1.4.22. mysql_free_result() (28)1.4.23. mysql_get_client_info() (29)1.4.24. mysql_get_host_info() (29)1.4.25. mysql_get_proto_info() (30)1.4.26. mysql_get_server_info() (30)1.4.27. mysql_info() (30)1.4.28. mysql_init() (31)1.4.29. mysql_insert_id() (32)1.4.30. mysql_kill() (32)1.4.31. mysql_list_dbs() (33)1.4.32. mysql_list_fields() (34)1.4.33. mysql_list_processes() (35)1.4.34. mysql_list_tables() (35)1.4.35. mysql_num_fields() (36)1.4.36. mysql_num_rows() (38)1.4.37. mysql_options() (38)1.4.38. mysql_ping() (40)1.4.39. mysql_query() (41)1.4.40. mysql_real_connect() (41)1.4.41. mysql_real_query() (43)1.4.42. mysql_reload() (44)1.4.43. mysql_row_seek() (45)1.4.44. mysql_row_tell() (45)1.4.45. mysql_select_db() (46)1.4.46. mysql_shutdown() (47)1.4.47. mysql_stat() (47)1.4.48. mysql_store_result() (48)1.4.49. mysql_thread_id() (49)1.4.50. mysql_use_result() (50)1.4.51. 为什么在mysql_query()返回成功后,mysql_store_result()有时返回NULL? (51)1.4.52. 我能从查询中得到什么结果? (51)1.4.53. 我怎样能得到最后插入的行的唯一ID? (52)1.MySQL API1.1. MySQL C APIC API代码是随MySQL分发的,它被包含在mysqlclient库且允许C程序存取一个数据库。
MySQL中⽂参考⼿册1 MySQL 的⼀般信息这是MySQL参考⼿册;它记载了MySQL版本3.23.7-alpha。
MySQL 是⼀个快速、多线程、多⽤户和强壮的SQL数据库服务器。
对Unix和 OS/2 平台,MySQL基本上是免费的;但对微软平台,你在30 天的试⽤期后必须获得⼀个MySQL 许可证。
详见。
提供有关MySQL的最新信息。
对于MySQL能⼒的讨论,详见。
对于安装指南,见。
对于有关移植MySQL到新机器或操作系统的技巧,参见。
有关从 3.21 版升级的信息,详见。
MySQL的⼊门教程,见。
SQL和基准信息的例⼦,见基准⽬录(在分发中的'sql-bench'⽬录)。
对于新特征和错误修复⼀个历史记录,见。
对于当前已知错误和功能缺陷的⼀张列表,见。
未来计划,见。
这个计划的所有贡献者的名单,见。
重要:将臭⾍(错误)报告、问提和建议发到邮件列表(原⽂未提供)。
对源代码分发,mysqlbug 脚本可在‘scripts’⽬录下找到。
对⼆进制的分发,mysqlbug可在‘bin’⽬录下找到。
如果你有任何关于这本⼿册的增补或修正的任何建议,请将它们发给⼿册⼩组()。
1.1 什么是 MySQL?MySQL是⼀个真正的多⽤户、多线程SQL数据库服务器。
SQL(结构化查询语⾔)是世界上最流⾏的和标准化的数据库语⾔。
MySQL是以⼀个客户机/服务器结构的实现,它由⼀个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是⼀种标准化的语⾔,它使得存储、更新和存取信息更容易。
例如,你能⽤SQL语⾔为⼀个⽹站检索产品信息及存储顾客信息,同时MySQL也⾜够快和灵活以允许你存储记录⽂件和图像。
MySQL 主要⽬标是快速、健壮和易⽤。
最初是因为我们需要这样⼀个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的⼚家在⼀个数量级上的⼤型数据库,但速度更快,MySQL就开发出来。
⾃1996年以来,我们⼀直都在使⽤MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万⾏,这⼤约有100 个吉字节(GB)的关键应⽤数据。
MySQL插⼊数据(添加数据)-INSERT基本语法:INSERT 语句有两种语法形式,分别是 INSERT…VALUES 语句和 INSERT…SET 语句。
1、INSERT...VLAUES语句INSERT VLAUES的语法格式如下:INSERT INTO <表名>[<列名1>[,<列名2>,...<列名n>]]VLAUES(值1)[....(值n)];语法说明如下。
<表名>:指定被操作的表名。
<列名>:指定需要插⼊数据的列名。
若向表中的所有列插⼊数据,则全部的列名均可以省略,直接采⽤ INSERT<表名>VALUES(…) 即可。
VALUES或VALUE⼦句:该⼦句包含要插⼊的数据清单。
数据清单中数据的顺序要和列的顺序相对应。
2、INSERT .... SET语句INSERT INTO<表名>SET <列名1> = <值1>,<列名2> = <值2>,...此语句⽤于直接给表中的某些列指定对应的列值,即要插⼊的数据的列名在 SET ⼦句中指定,col_name 为指定的列名,等号后⾯为指定的数据,⽽对于未指定的列,列值会指定为该列的默认值。
由 INSERT 语句的两种形式可以看出:使⽤ INSERT…VALUES 语句可以向表中插⼊⼀⾏数据,也可以插⼊多⾏数据;使⽤ INSERT…SET 语句可以指定插⼊⾏中每列的值,也可以指定部分列的值;INSERT…SELECT 语句向表中插⼊其他表的数据。
采⽤ INSERT…SET 语句可以向表中插⼊部分列的值,这种⽅式更为灵活;INSERT…VALUES 语句可以⼀次插⼊多条数据。
在 MySQL 中,⽤单条 INSERT 语句处理多个插⼊要⽐使⽤多条 INSERT 语句更快。
当使⽤单条 INSERT 语句插⼊多⾏数据的时候,只需要将每⾏数据⽤圆括号括起来即可。
mysql workbench的中文使用方法MySQL Workbench是MySQL官方提供的一款数据库管理工具,可以用于设计、开发、修改和管理MySQL数据库。
以下是MySQL Workbench的中文使用方法:1. 打开MySQL Workbench并连接到数据库:点击左上角的“连接”按钮,选择要连接的数据库类型(如MySQL),输入连接信息(如主机名、用户名、密码等),点击“测试连接”以确保一切正常,然后点击“确定”按钮连接到数据库。
2. 创建数据库:在左侧的“对象浏览器”窗格中,右键单击“数据库”文件夹,选择“新建数据库”,输入数据库名称,选择字符集和排序规则,然后点击“确定”按钮创建数据库。
3. 创建表:在数据库文件夹下右键单击要创建表的数据库,选择“新建表”,输入表名和列名,设置数据类型和约束条件(如主键、外键等),然后点击“保存”按钮创建表。
4. 插入、更新和删除数据:在表编辑器中,可以点击“+”或“-”按钮添加或删除行,修改列的值,插入、更新或删除数据。
5. 运行SQL查询:在SQL编辑器中,可以输入SQL查询语句并执行,查看结果或进行其他操作。
6. 导出和导入数据:在左侧的“对象浏览器”窗格中,右键单击要导出数据的表或数据库,选择“导出数据”,选择导出格式(如CSV、JSON等),设置导出选项,然后点击“开始”按钮导出数据。
导入数据时,可以选择“导入数据”选项并按照提示进行操作。
7. 管理和维护数据库:可以使用MySQL Workbench提供的各种工具和功能来管理和维护数据库,如优化表、修复表、执行存储过程等。
以上是MySQL Workbench的基本使用方法,具体操作可能会因版本不同而有所差异。
在使用过程中如有疑问,可以参考官方文档或寻求专业人士的帮助。
关于Mysql中⽂乱码问题该如何解决(乱码问题完美解决⽅案)最近两天做项⽬总是被乱码问题困扰着,这不刚把mysql中⽂乱码问题解决了,下⾯⼩编把我的解决⽅案分享给⼤家,供⼤家参考,也⽅便以后⾃⼰查阅。
⾸先:⽤show variables like “%colla%”;show varables like “%char%”;这两条命令查看数据库与服务端的字符集设置如果查看出来都是gbk2312,或 gbk,那么就只能⽀持简体中⽂,繁体和⼀些特殊符号是不能插⼊的,我们只有修改字符集为UTF-8,修改⽅法如下:⽤记事本或UitraEdit打开mysql数据库安装⽬录下的my.ini⽂件打开,然后Ctrl+F搜索default-character-set,将后⾯的字符集修改为UTF8,注意要修改两个地⽅,⼀个事客户端的,⼀个是服务端的。
然后保存,重启mysql服务、、进去继续⽤show variables like “%colla%”;show varables like “%char%”;着两条语句查询⼀下字符集。
如图:到此就配置完成了。
注意:如果以前建有数据库没有删除的请⽤ show database 数据库名;和 show create table 表名;查看⼀下数据库和表的字符集是否为UTF8 ,因为修改my.ini⽂件,它不能修改原来数据库的的字符集。
在命令⾏下⾯可以⽤alter database 数据库名 character set “字符集”;命令来修改数据库字符集还有⼀点要注意的是,修改为UTF8以后,在命令⾏下⾯中⽂是乱码的,只输出到页⾯或控制台是正常的,这个问题我也上⽹查了⼀下,貌似命令⾏下⾯不⽀持UTF8,我也不太清楚。
当修改以后,在命令⾏下⾯如果要插⼊中⽂,可以在插⼊语句之前执⾏,set names gbk2312;就可以插⼊中⽂了,但是不能插⼊繁体和⼀些特殊符号。
以上就是这⼏天解决乱码的成果。
MYSQL数据操作(CRUD:插⼊,删除和更新插⼊数据①插⼊⼀⾏记录INSERT INTO TABLE_NAME(列名1,列名2,.......)VALUES(值1,值2,.......);②插⼊多⾏记录INSERT INTO TABLE_NAME(列名1,列名2,.......)VALUES(值1,值2,.......),...........VALUES(值1,值2,.......);③插⼊查询结果(可能是结果集)INSERT INTO TABLE_NAME(列名1,列名2,.......)SELECT(列名1,列名2,.......)FROM TABLE_NAME2WHERE .........注意:1. 如果⽤TABLE_NAME(列名1,列名2,.......) ,那么对于语句⾥⾯的字段参数:顺序可以⾃定义,不⽤和表的字段顺序⼀致;要插⼊哪些字段也可以⾃定义,不⽤把表的所有字段都写上。
2. VALUES(值1,值2,.......)语句⾥的赋值参数,会和上⾯的字段参数⼀⼀对应。
⽽且我们写要插⼊的值的时候,必须保证所插⼊的值和对应字段的数据类型⼀致,⽐如字段name数据类型是VARCHAR,那么我们插⼊的值就必须是字符串,即单引号 'xxx' ;再⽐如,字段参数是student(name,age),我们插⼊的值不能是 VALUES(,12),如果想插⼊空值必须⽤NULL。
总结⼀下,⼀旦我们选择了要插⼊的字段,我们就必须保证要插⼊的数值和选择的字段的个数,顺序,类型⼀致。
举个例⼦,假设现在有表student(id,name,age,sex),我们选择的要INSERT INTO 的字段是student(name,age),那么VALUES的时候绝对不能出现以下四种情况:VALUES( ,12)插⼊了MYSQL不识别的值,想插⼊空值必须⽤NULL。
VALUES( '王⼀')插⼊的数值和选择的字段的个数不同VALUES(12, '王⼀')字段参数的顺序和插⼊数值的顺序不同,不能⼀⼀对应VALUES('王⼀', '⼗⼆')插⼊数值和字段类型不同3. 上⾯提到我们可以只选择部分字段进⾏插⼊,那么那些未选择的字段会怎么样呢?①在具体开发中,有⾃动增加约束和默认值约束的字段我们⼀般会把他们忽略,不需要我们⼿动赋值,MYSQL会⾃动给其赋值。
这是在2007年11月3日01:39:00 GMT 检索到的/imagesnew/software/mysql/manual_Installing.html 的G o o g l e 缓存内容。
G o o g l e 已先预览各网页,拍下网页的快照存档。
这网页可能有更新的版本,请按此查看最新版。
本缓存网页可能引用了已经不存在的图片。
单击此处,只查看缓存文本。
请使用网址/search?q=cache:mhLpvk81A4sJ:/imagesnew/software/m ysql/manual_Installing.html+mysql+pid+file+could+not+be+found&hl=zh-CN&ct=clnk&cd=27 &gl=cn&lr=lang_zh-CN&st_usg=ALhdy28uQpVhyxL0Mf4KAQh1RGVlverCUA 链接此页或将其做成书签。
Google 和网页作者无关,不对网页的内容负责。
这些搜索字词都已标明如下:mysql pid file could not found--------------------------------------------------------------------------------MySQL中文参考手册--------------------------------------------------------------------------------第一章, 前一章, 下一章, 最后一章--------------------------------------------------------------------------------4 安装MySQL本章描述怎样获得并安装MySQL:对于你能从其获得MySQL的站点列表,见4.1 怎样获得MySQL。
关于mysql中文插入和显示.txt结婚就像是给自由穿件棉衣,活动起来不方便,但会很温暖。
谈恋爱就像剥洋葱,总有一层让你泪流。
1,linux系统在安装的时候可能选择的不是中文安装要能显示中文先要修改/etc/sysconfig/i18n
把下面的写入/etc/sysconfig/i18n重启系统就可以支持中文显示。
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
2,在mysql的f中加入
default-character-set=utf8
重启myqsl
3,如果在以往的表和库中不能参入中文或者插入之后显示的还是乱码
SHOW CREATE DATABASE mmi;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mmi | CREATE DATABASE `mmi` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+----------------------------------------------------------------+
在这里我们可以
alter database mmi DEFAULT CHARACTER SET = utf8;
再
SHOW CREATE DATABASE mmi;
+----------+--------------------------------------------------------------+
| Database | Create Database |
+----------+--------------------------------------------------------------+
| mmi | CREATE DATABASE `mmi` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+--------------------------------------------------------------+
再
CREATE TABLE `country_ip` (
`ID` int(11) NOT NULL,
`start_ip` double default NULL,
`end_ip` double default NULL,
`code2` varchar(255) default NULL,
`start_ip1` varchar(50) default NULL,
`end_ip1` varchar(50) default NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
我们修改
alter table country_ip default charset = utf8;
这样在mmi下面的数据库里面新添加数据表或者在country_ip 中插入数据都可以插入中文并且显示中文。
在status;的显示中Db characterset: utf8要为utf8要不建设新库的时候会让里面的表不能显示中文;
--------------
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686) using readline 5.1
Connection id: 18
Current database: mmi
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.77-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 12 min 59 sec
Threads: 4 Questions: 199 Slow queries: 0 Opens: 28 Flush tables: 1 Open tables: 13 Queries per second avg: 0.255
cmake . \
-DCMAKE_INSTALL_PREFIX=/mysql/mysqldir \
-DMYSQL_DATADIR=/mysql/mysqldir/data \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/mysql/mysqldir/data/mysql.sock \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0。