Les types de données d'Oracle incluent : 1. Le type de chaîne, char et varchar2, qui peut exprimer n'importe quelle chaîne ; 2. Le type numérique, number(m,n), qui peut exprimer n'importe quel nombre ; 3. Le type de date, date, qui stocke les dates ; et l'heure ; 4. type clob, qui stocke les données de chaîne à un octet ou de chaîne multi-octets ; 5. type blob, qui stocke les données binaires non structurées ; 6. type rowid, qui stocke l'adresse physique enregistrée dans la base de données ; 7. Autres types de données.
L'environnement d'exploitation de cet article : système Windows 10, Oracle version 19c, ordinateur Dell g3.
Les types de données d'Oracle sont les suivants :
1. Types de chaîne : char et varchar2, qui peuvent exprimer n'importe quelle chaîne.
2. Type de nombre : nombre(m,n), qui peut exprimer n'importe quel nombre. m est la longueur totale du nombre, n est le nombre de chiffres après la virgule. Si n est 0, cela signifie qu'il s'agit d'un nombre. entier.
3. Type de date : date, date et heure du magasin, y compris l'année (aaaa), le mois (mm), le jour (jj), l'heure (hh24), la minute (mi) et la seconde (ss).
4. Type Clob, qui stocke des données de chaîne à un octet ou de chaîne multi-octets, telles que des fichiers texte et des fichiers XML.
5. Type Blob, qui stocke des données binaires non structurées, telles que des images, de l'audio, des vidéos, des documents bureautiques, etc.
6. Type Rowid, qui stocke l'adresse physique enregistrée dans la base de données dans le tableau.
7. Autres types de données.
1. Le type String
est utilisé dans le langage C/C++. Les chaînes sont placées entre guillemets doubles dans la base de données Oracle, comme suit :
'www.freecplus'
. 'Coder Youdao'
'A Silly Bird'
1. Chaîne de longueur fixe
Les chaînes de longueur fixe sont représentées par un caractère Lorsque la longueur du contenu des données stockées n'est pas suffisante, Oracle remplira automatiquement les espaces après le. contenu des données pour atteindre sa longueur fixe, par exemple char(10) contient toujours 10 octets d'informations.
Le champ Char peut stocker jusqu'à 2000 octets de contenu.
2. Chaînes de longueur variable
Les chaînes de longueur variable sont représentées par varchar2 Contrairement au type char, Oracle ne remplira rien après le contenu des données.
Le champ varchar2 peut stocker jusqu'à 4 000 octets de contenu, et à partir de la version Oracle 12c, il peut stocker 32 767 octets de contenu.
3. Comparaison de char et varchar2
char(10), s'il est stocké dans 'freecplus', 'freecplus' sera stocké dans la base de données, avec un espace ajouté à la fin.
varchar2(10), si vous stockez 'freecplus', 'freecplus' sera stocké dans la base de données et rien ne sera ajouté.
Dans les applications pratiques, nous ne voulons pas qu'Oracle ajoute des espaces après la chaîne, alors le type char peut-il être abandonné ? Non, nous utilisons généralement le type char pour stocker du contenu de données de taille fixe, tel que le numéro d'identification, qui est toujours de 18 bits, donc char(18) est très approprié. Puis-je utiliser varchar2(18) pour stocker le numéro d'identification ? Bien sûr que vous le pouvez, mais l'efficacité de char(18) est bien supérieure à celle de varchar2(18).
Pour résumer, si vous êtes sûr, sûr, certain et garanti que la longueur de la chaîne stockée est fixe, comme le sexe, le numéro d'identification, le numéro de téléphone portable, utilisez le type char, sinon utilisez le type varchar2, tel que le nom, éducation, adresse, loisirs, etc. Bien que char soit rigide, il est efficace.
4. Stockage des caractères chinois
Le nombre d'octets occupé par chaque caractère chinois dépend de la méthode de codage spécifique, telle que UTF-8 (1-3 octets), GB2312 (2 octets), GBK (2 octets), GB18030 ( 1, 2, 4 octets).
2. Type de nombre
Oracle utilise le type de nombre pour stocker des nombres. Ce type peut stocker jusqu'à 38 bits de précision, ce qui est beaucoup plus élevé que les types long int et double conventionnels dans les langages de programmation.
number(m,n), m représente la longueur totale, n représente la précision des décimales des données stockées dépasse n, la valeur arrondie sera prise.
Par exemple : nombre (10,3), 10 est la longueur totale, 3 est le nombre de chiffres après la virgule, comme 123,456.
Si vous déposez 123,4567, le montant réel sera de 123,457.
Si vous déposez 12345679.899 et que la longueur totale dépasse 10, Oracle affichera une erreur.
Si vous envisagez de stocker des entiers, utilisez simplement number(m). m représente le nombre maximum de chiffres pouvant être stockés dans les données.
3. Type de date
Oracle utilise le type de date pour représenter la date et l'heure. Il s'agit d'un type de données de 7 octets à largeur fixe avec 7 attributs, notamment : siècle, année en siècle, mois, mois. heure, minute et seconde.
Dans les langages de programmation, les dates et les heures sont affichées et écrites sous forme de chaînes. Oracle fournit deux fonctions, to_date et to_char, pour convertir entre le type de date et le type de chaîne.
Par exemple :
insert into T_GIRL(name,birthday) values('西施',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss')); select name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL where name='西施';
4. Types Clob et Blob
Type Clob, grand objet de chaîne de longueur variable, jusqu'à 4 Go, Clob peut stocker des données de chaîne à un octet ou de chaîne multi-octets, Clob est considéré comme un chaîne plus grande. Lorsque le jeu de caractères de la base de données est converti, le type clob est affecté.
Type Blob, grand objet binaire de longueur variable, jusqu'à 4 Go de longueur, est principalement utilisé pour enregistrer des données non structurées formatées, telles que des images, de l'audio, des vidéos, des documents Office, etc. Lorsque le jeu de caractères de la base de données est converti, le type de blob n'est pas affecté et Oracle Database ne se soucie pas du contenu stocké.
5. Type Rowid
Chaque ligne d'enregistrements dans chaque table de la base de données Oracle a un emplacement de stockage physique, c'est-à-dire la pseudo-colonne rowid de la table. L'utilisation de rowid comme condition Where a l'efficacité d'accès la plus élevée.
Bien que Rowid ait l'efficacité d'accès la plus élevée, vous devez être prudent dans les applications pratiques et faire attention à deux problèmes :
1) Rowid stocke l'emplacement physique des enregistrements de table lors du tri, de la sauvegarde et de la migration des données, , l'emplacement physique. de l'enregistrement va changer ;
2) rowid est un type de données exclusif à la base de données Oracle et est incompatible avec d'autres bases de données.
6. Autres types de données
Dans le contenu ci-dessus, les types de données les plus couramment utilisés dans Oracle sont présentés, qui peuvent répondre à plus de 99% des scénarios d'application.
Oracle propose 22 types de données SQL différents. D'autres types de données ne sont peut-être pas pratiques, mais je les liste quand même tous afin que vous puissiez les comprendre sans entrer dans les détails. En vingt ans, je n’ai jamais utilisé d’autre type de données.
char : chaîne de longueur fixe, complétée par des espaces pour atteindre la longueur maximale. Un char(10) non nul contient 10 octets d'informations. Un champ char peut stocker jusqu’à 2 000 octets d’informations.
nchar : chaîne de longueur fixe contenant des données au format Unicode. Les champs nchar peuvent stocker jusqu'à 2 000 octets d'informations.
varchar2 : C'est un synonyme de varchar. Il s'agit d'une chaîne de longueur variable qui, contrairement au type char, ne remplit pas les champs ou les variables à la longueur maximale avec des espaces. varchar(10) peut contenir 0 à 10 octets d'informations et peut stocker jusqu'à 4 000 octets d'informations. À partir de 12c, 32 767 octets d’informations peuvent être stockés.
nvarchar2 : une chaîne de longueur variable contenant des données au format Unicode. Peut stocker jusqu'à 4 000 octets d'informations. À partir de 12c, 32 767 octets d’informations peuvent être stockés.
raw : un type de données binaires de longueur variable. Les données stockées dans ce type de données ne subiront pas de conversion de jeu de caractères.
numéro : peut stocker des numéros avec une précision allant jusqu'à 38 chiffres. Ce type de données sera stocké dans un format de longueur variable, avec une longueur allant de 0 à 22 octets.
binary_float : nombre à virgule flottante simple précision de 32 bits, qui peut prendre en charge une précision d'au moins 6 bits et occupe 5 octets d'espace de stockage sur le disque.
binary_double : nombre à virgule flottante double précision de 64 bits, qui peut prendre en charge une précision d'au moins 15 bits et occupe 9 octets d'espace de stockage sur le disque.
long : ce type peut stocker jusqu'à 2 Go de données de caractères
long raw : le type long raw peut stocker jusqu'à 2 Go d'informations binaires
date : il s'agit d'un type de données date/heure à largeur fixe de 7 octets, où Contient 7 attributs : siècle, année en siècle, mois, jour du mois, heures, minutes, secondes.
horodatage : il s'agit d'un type de données date/heure à largeur fixe de 7 ou 11 octets qui contient des fractions de seconde.
horodatage avec fuseau horaire : il s'agit d'un horodatage de 13 octets qui prend en charge le fuseau horaire.
horodatage avec fuseau horaire local : il s'agit d'un type de données date/heure à largeur fixe de 7 ou 11 octets. La conversion du fuseau horaire se produit lorsque les données sont insérées et lues.
intervalle d'année en mois : il s'agit d'un type de données de 5 octets à largeur fixe utilisé pour stocker une période.
intervalle jour à seconde : il s'agit d'un type de données à largeur fixe de 11 octets utilisé pour stocker une période. Stockez les périodes sous forme de jours/heures/minutes/secondes, éventuellement avec 9 fractions de seconde.
blob : Ce type est capable de stocker jusqu'à 4 Go de données.
clob : Ce type est capable de stocker jusqu'à 4 Go de données. Ce type est affecté lors de la conversion des jeux de caractères.
nclob : Ce type est capable de stocker jusqu'à 4 Go de données. Ce type est affecté lors de la conversion des jeux de caractères.
bfile : ce type de données peut stocker un objet de répertoire Oracle et un nom de fichier dans la colonne de la base de données, et nous pouvons lire le fichier à travers celui-ci.
rowid : C'est en fait l'adresse de la ligne dans la table de la base de données, elle fait 10 octets.
urowid : C'est un rowid général, il n'y a pas de table rowid fixe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!