[MySQL] type char et norme SQL

type char et norme SQL [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 19-08-2003 à 16:37:44    

le type char de MySQL est-il normé SQL ou pas ?
dans le cas contraire j'utiliserai varchar
 
il me semble que non, je souhaiteri avoir confirmation, merci  :)  
 
 :hello:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 16:37:44   

Reply

Marsh Posté le 19-08-2003 à 16:47:00    

la question reste encore valable...
 
par contre lorsqu'on declare un champ de type varchar(1) il passe automatiquement en char(1) :/ ... sachez-le !  :whistle:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 21:05:36    

:lol:

Reply

Marsh Posté le 19-08-2003 à 21:45:29    


[:mlc] .. ca veut dire quoi ca ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 21:47:51    

que varchar(1) est automatiquement transformé en char(1) :)
 
surtout si mysql le fait dans ton dos sans rien te dire, ja contribue grandement à l'idée que j'ai de ce superbe sgbd :D

Reply

Marsh Posté le 19-08-2003 à 21:52:54    

MagicBuzz a écrit :

que varchar(1) est automatiquement transformé en char(1) :)
 
surtout si mysql le fait dans ton dos sans rien te dire, ja contribue grandement à l'idée que j'ai de ce superbe sgbd :D


soyons sérieux ... en même temps, il le fait pour le bie de l'humanité  :o  
 
en réalité, que ca soit l'un ou l'autre .... on n'y gagne rien en terme d'économie de poids  :sweat:  
mais il a surement une bonne raison de le faire.
 
et alors tu me confirmer : char ... c'est pas normé SQL ?
 
Pour avoir bossé un peu sur SQLServer, je suis d'accord pour dire que c'est pas un SGBD de paidais  ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 21:57:20    

Pour SQL Server, ils sont conformes à SQL 92, ainsi que nchar et nvarchar (caractères unicodes)
 

char and varchar
Fixed-length (char) or variable-length (varchar) character data types.
 
char[(n)]
 
Fixed-length non-Unicode character data with length of n bytes. n must be a value from 1 through 8,000. Storage size is n bytes. The SQL-92 synonym for char is character.
 
varchar[(n)]
 
Variable-length non-Unicode character data with length of n bytes. n must be a value from 1 through 8,000. Storage size is the actual length in bytes of the data entered, not n bytes. The data entered can be 0 characters in length. The SQL-92 synonyms for varchar are char varying or character varying.
 
Remarks
When n is not specified in a data definition or variable declaration statement, the default length is 1. When n is not specified with the CAST function, the default length is 30.
 
Objects using char or varchar are assigned the default collation of the database, unless a specific collation is assigned using the COLLATE clause. The collation controls the code page used to store the character data.
 
Sites supporting multiple languages should consider using the Unicode nchar or nvarchar data types to minimize character conversion issues. If you use char or varchar:  
 
Use char when the data values in a column are expected to be consistently close to the same size.
 
 
Use varchar when the data values in a column are expected to vary considerably in size.  
If SET ANSI_PADDING is OFF when CREATE TABLE or ALTER TABLE is executed, a char column defined as NULL is handled as varchar.  
 
When the collation code page uses double-byte characters, the storage size is still n bytes. Depending on the character string, the storage size of n bytes may be less than n characters.


 
On note d'ailleurs que SQL Server est pas beaucoup mieu que MySQL pour le coup du changement de type sans rien dire :whistle:  
M'enfin bon, ça n'arrive que dans un cas très précis, et c'est documenté (et faut être un gros boulet pour pas le trouver dans la doc) :D
Par contre, c'est dans l'autre sens :)
 
Bon, après, ça dépends de la façon dont le système gère les deux types...


Message édité par MagicBuzz le 19-08-2003 à 21:58:49
Reply

Marsh Posté le 19-08-2003 à 21:59:47    

MagicBuzz a écrit :


 
On note d'ailleurs que SQL Server est pas beaucoup mieu que MySQL pour le coup du changement de type sans rien dire :whistle:  
M'enfin bon, ça n'arrive que dans un cas très précis, et c'est documenté (et faut être un gros boulet pour pas le trouver dans la doc) :D
Par contre, c'est dans l'autre sens :)


 :lol:  :D c'est bien la peine de te moquer  :sol:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 22:00:05    

Par contre, pour MySQL et son type char, je sais pas. J'ose espérer que c'est standard... Mais bon, y'a tellement de trucs pas standard dans ce sgbd qu'à la base je veux rien affirmer sans en être sûr :)

Reply

Marsh Posté le 19-08-2003 à 22:00:41    

simogeo a écrit :


 :lol:  :D c'est bien la peine de te moquer  :sol:  


Vi mais non, c'est la doc qui bug :ange:

Reply

Marsh Posté le 19-08-2003 à 22:00:41   

Reply

Marsh Posté le 19-08-2003 à 22:05:05    

MagicBuzz a écrit :

Par contre, pour MySQL et son type char, je sais pas. J'ose espérer que c'est standard... Mais bon, y'a tellement de trucs pas standard dans ce sgbd qu'à la base je veux rien affirmer sans en être sûr :)


il y a le type enum et le type set .. non standard .. pour le reste c'est ok ... seul doute persistent sur char  :whistle:


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 19-08-2003 à 22:18:06    

j'ai l'impression que mysql adapte les normes à sa sauce d'une version à l'autre, donc t'es pas rendu :/
 
http://darkstar.ist.utl.pt/mysql/d [...] _ANSI.html
 
Là j'ai un varchar non conforme, et un char qui se change en varchar tout seul

Reply

Marsh Posté le 19-08-2003 à 22:22:03    

doc plus récente, apparement officielle, qui confirme le précédent post : varchar et char ne sont pas conformes à sql92
 
http://www.dwam.net/docs/mysqle3.2 [...] _from_ANSI


Message édité par MagicBuzz le 19-08-2003 à 22:22:15
Reply

Marsh Posté le 19-08-2003 à 22:47:45    

[:sisicaivrai]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed